프로그래머스 | SQL 스터디 14 (Union, Union all)
·
SQL/프로그래머스
SELECT★오프라인/온라인 판매 데이터 통합하기 (Lv4)문제 설명 ​문제​풀이SELECT로 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 조회 FROM에서 온라인 데이터와 오프라인 데이터를 각각 UNION ALL을 통해서 병합* 오프라인 데이터의 USER_ID는 NULL 처리* 22년 3월의 데이터로 한정 ORDER BY에서 SALES_DATE, PRODUCT_ID, USER_ID 순으로 오름차순 정렬※ 모든 서브쿼리에는 별칭이 필수이다!!SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNTFROM ( -- 온라인 데이터 SELECT SALES_DATE, PRODUCT_ID, U..
프로그래머스 | SQL 스터디 10
·
SQL/프로그래머스
SELECT재구매가 일어난 상품과 회원 리스트 구하기 (Lv2)문제 설명​문제 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. ​풀이SELECT로 회원 ID, 상품 ID 를 조회 GROUP BY에서 회원 ID, 상품 ID로 그룹화 HAVING에서 개수가 1보다 큰 것으로 지정 ORDER BY에서 회원 ID는 오름차순, 상품 ID는 내림차순 정렬SELECT USER_ID,PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING ..
패스트캠퍼스 BDA 부트캠프 | 7주차 과정(MySQL)
·
[패캠] 데이터분석 부트캠프/수업 정리
23.12.04HAVING조건은 WHERE절에서 사용하는데 HAVING은 왜 사용하지?WHERE절에서는 집계함수를 사용할 수 없기에 HAVING절을 사용해야함SELECT provider FROM items GROUP BY providerHAVING COUNT(*)>=100;  SQL 실행 순서FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY​JOINJOIN은 두 개 이상의 테이블로부터 필요한 데이터를 연결해 하나의 포괄적인 구조로 결합시키는 연산JOIN은 다음과 같이 세분화될 수 있지만, 보통은 INNER JOIN을 많이 사용함INNER JOIN : 두 테이블에 해당 필드값이 매칭되는 (두 테이블의 모든 필드로 구성된) 레코드만 가져옴 (일종의 교집합)LEFT..
패스트캠퍼스 BDA 부트캠프 | 6주차 과정(MySQL)
·
[패캠] 데이터분석 부트캠프/수업 정리
23.11.30관계형 데이터베이스(relational data base)란 데이터를 계층 구조가 아닌 단순한 표(릴레이션 ; 관계)로 표현하는 형식의 데이터 베이스표(table)로 자유롭게 가로세로의 항목(item)을 액세스할 수 있도록 되어 있다이용자는 「표」의 분할, 결합을 자유롭게 할 수 있고, 표로의 추가, 변경도 다른 영향을 받지 않게 행할 수 있다(출처: 네이버 지식백과)​데이터베이스란 테이블을 저장해두는 저장소​#, --(마이너스 2개) : 주석​/**/ : 으로 한꺼번에 주석처리 가능​MySQL에서는 해당 저장 공간에서 미리 정해둔 데이터 타입이 아닐 경우, 데이터 저장이 불가능함.​데이터 타입:숫자형 데이터는 '수', 따라서 데이터 간 연산이 가능문자형 데이터는 반드시 "" 또는 '' 와..
프로그래머스 | SQL 스터디 9
·
SQL/프로그래머스
SELECT강원도에 위치한 생산공장 목록 출력하기(Lv1)문제 설명​문제FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.​풀이SELECT로 공장 ID, 공장 이름, 주소를 조회​WHERE에서 강원도를 지정하기 위해 LIKE문을 활용SELECT FACTORY_ID, FACTORY_NAME, ADDRESSFROM FOOD_FACTORYWHERE ADDRESS LIKE '강원도%'; SUM, MAX, MIN잡은 물고기 중 가장 큰 물고기의 길이 구하기(Lv1)문제 설명​문제FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문..
프로그래머스 | SQL 스터디 4
·
SQL/프로그래머스
SELECT조건에 맞는 도서 리스트 출력하기(Lv1)문제 설명​문제BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요.​풀이SELECT로 도서ID, 출판날짜를 조회결과에서 출판날짜의 형식이 다르기 때문에 DATE_FORMAT으로 형식 변환​WHERE문에서 출판년도 2021년, 카테고리는 인문으로 설정​ORDER BY에서 출판날짜를 오름차순 정렬SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE,'%Y-%m-%d') PUBLISHED_DATEFROM BOOKWHERE PUBLISHED_DATE LIK..
프로그래머스 | SQL 스터디 3
·
SQL/프로그래머스
SELECT평균 일일 대여 요금 구하기(Lv1)문제 설명​문제CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.​풀이SELECT로 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정AVG(DAILY_FEE)를 ROUND( ,0)의 빈칸에 넣고 칼럼명 AVERAGE_FEE로 지정​WHERE문에서 CAR_TYPE ='SUV'로 차의 종류 설정SELECT ROUND( AVG(DAILY_FEE) ,0) AS AVERAGE_FEEFROM CAR_RENTAL_COM..
프로그래머스 | SQL 스터디 2
·
SQL/프로그래머스
SELECT흉부외과 또는 일반외과 의사 목록 출력하기(Lv1)문제DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.​풀이SELECT로 ​의사의 이름, 의사ID, 진료과, 고용일자를 조회여기서 HIRE_YMD는 DATE_FORMAT으로 형식 변경해주기!​WHERE문에서 원하는 진료과를 입력 WHERE MCDP_CD IN ('CS', 'GS')​ORDER BY에서 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬SELECT DR_NAME, DR_ID, MCDP_CD,..