반응형

Back-end/SQL 18

[SQL로 하는 데이터 분석] 06. 서브쿼리와 뷰를 활용한 유연한 데이터 분석

서브쿼리 기초 저는 코팡에서 2020년을 기준으로 생각했을 때, 꽤 오래 전에 등록되었지만 아직까지도 리뷰가 달리고 있는 스테디 셀러 상품들의 리뷰들을 살펴보려고 하는데요. review 테이블에서 (1) '2018년 12월 31일' 이전에 코팡 사이트에 등록된 상품들에 관한 리뷰들만 추려보겠습니다. (2) 그리고 이때 review 테이블의 모든 컬럼들을 조회하세요. *조인 말고 서브쿼리를 사용해서 문제를 해결해보세요. SELECT * FROM review WHERE item_id IN ( SELECT id FROM item WHERE registration_date < '2018-12-31' ); 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.27

[SQL로 하는 데이터 분석] 05. 데이터 분석 단계로 나아가기

여러 테이블 조인하기 (1) 일단 세 테이블을 이너 조인(INNER JOIN)하세요. *조인 기준은 다음과 같이 하면 됩니다 review 테이블의 item_id 컬럼 - item 테이블의 id 컬럼 / review 테이블의 mem_id 컬럼 - member 테이블의 id 컬럼 (2) 그리고 item 테이블의 gender 컬럼의 값이 u인 row들만 선별하세요. (3) item 테이블의 registration_date 컬럼에서 연도를 추출해서 이것(상품 등록 연도)을 기준으로 row들을 그루핑하세요. (4) 각 그룹 내 row 개수가 10개 이상인 그룹들만 추리세요. (5) 결과를 별점 평균값을 기준으로 내림차순 정렬하세요. (6) 컬럼은 총 세 개를 조회하세요. a) 상품 등록 연도 컬럼('등록 연도'라..

Back-end/SQL 2021.03.26

[SQL로 하는 데이터 분석] 05. 데이터 분석 단계로 나아가기

Foreign Key와 조인 이 두 테이블을 조인해서, 각 피자별 판매량을 한꺼번에 보려고 합니다. (1) 조인을 통해 생성된 결과 중에서 pizza_price_cost 테이블의 name 컬럼과, sales 테이블의 sales_volume 컬럼만 조회하세요. (2) 이때 sales_volume 컬럼에는 '판매량'이라는 alias를 붙이고, sales_volume이 NULL인 row의 경우에는 ‘판매량 정보 없음’으로 표시하세요. SELECT p.name, COALESCE(s.sales_volume, '판매량 정보 없음') AS '판매량' FROM pizza_price_cost AS p LEFT OUTER JOIN sales AS s ON p.id = s.menu_id 본 내용은 Codeit의 '개발자를 ..

Back-end/SQL 2021.03.26

[SQL로 하는 데이터 분석] 04. 데이터 분석 단계로 나아가기

그루핑해서 보기 (1) category 컬럼, main_month 컬럼을 기준으로 그루핑하고 (2) 그룹들 중에서 주 상영 월이 5월이고, view_count의 합이 3000000(삼백만) 이상인 것들만 선별하세요. (3) 그리고 category 컬럼, main_month 컬럼, 각 그룹에 속한 row의 개수, 각 그룹의 view_count 합, 이 4가지 컬럼을 조회하세요. (4) 마지막으로 각 그룹에 속한 row의 개수 컬럼에는 '영화 수'라는 alias를, 각 그룹의 view_count 합 컬럼에는 '총 관객 수'라는 alias를 붙이세요. SELECT category, main_month, count(*) AS '영화 수', SUM(view_count) AS '총 관객 수' FROM 2020_mo..

Back-end/SQL 2021.03.23

[SQL로 하는 데이터 분석] 04. 데이터 분석 단계로 나아가기

컬럼 자유롭게 다루기 (1) menu 테이블의 name, price, price/cost(원가 기준 가격의 비율) 컬럼을 조회하세요. (2) 대신 마지막 price/cost 컬럼을 사용해서 그 값이 1 == 1.7 THEN 'A. 고효율 메뉴' END) AS efficiency FROM pizza_price_cost ORDER BY efficiency DESC, price ASC LIMIT 6; 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.23

[SQL로 하는 데이터 분석] 04. 데이터 분석 단계로 나아가기

데이터 분석 (1) 고객들이 남긴 리뷰 수와, (2) 별점 평균값을 구하려고 합니다. 대신, (3) 댓글이 존재하는(comment 컬럼이 NULL이 아닌) 리뷰들의 개수와 그 별점들의 평균만 구하려고 하는데요. (4) 그리고 별점의 평균값은 반올림을 해주려고 합니다. 어떻게 해야할까요? 직접 SQL 문을 작성해보세요. ! COUNT 함수는 COUNT(*)의 형식으로 사용해주세요. SELECT COUNT(*), ROUND(AVG(star)) FROM review WHERE comment IS NOT NULL; 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.20

[SQL로 하는 데이터 분석] 03. 데이터 조회로 기본 다지기

데이터 정렬 (1) star(별점) 컬럼을 기준으로 일단 오름차순 정렬하고, (2) 같은 별점인 경우에는 registration_date(등록일자) 컬럼을 기준으로 내림차순 정렬하려고 합니다. 즉, 안 좋은 리뷰부터, 최근 순으로 볼 겁니다. 그리고 정렬된 결과 중에서도 (3) 5번째 row까지만 일단 추려서 보고 싶습니다. SELECT * FROM review ORDER BY star ASC, registration_date desc LIMIT 5; 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.19

[SQL로 하는 데이터 분석] 03. 데이터 조회로 기본 다지기

데이터 조회 (1) 나이가 20대이고, (2) 코드잇 피자 가게 사이트에 가입한 달이 7월인 회원들만 추려서 그 회원들에게 이메일로 할인 쿠폰을 발송하려고 합니다. SELECT * FROM member WHERE age BETWEEN 20 AND 29 AND MONTH(sign_up_day) = 7; 본 내용은 Codeit의 '개발자를 위한 SQL 데이터베이스' 강의를 참고하여 작성한 내용입니다.

Back-end/SQL 2021.03.19
반응형
LIST