Back-end/SQL

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

Dev다D 2021. 3. 26. 23:04
반응형

여러 테이블 조인하기

 

(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) 상품 등록 연도 컬럼('등록 연도'라는 alias를 붙이세요.)

b) 각 그룹 내 row의 개수('리뷰 개수'라는 alias를 붙이세요.)

c) 각 그룹별 별점 평균값('별점 평균값'이라는 alias를 붙이세요.)


SELECT
    YEAR(i.registration_date) AS '등록 연도',
    COUNT(*) AS '리뷰 개수',
    AVG(star) AS '벌점 평균값'
FROM
    review AS r INNER JOIN item AS i
        ON r.item_id = i.id
    INNER JOIN member AS m
        ON r.mem_id = m.id
WHERE i.gender = 'u'
GROUP BY YEAR(i.registration_date)
HAVING COUNT(*) >= 10
ORDER BY AVG(star) DESC;

본 내용은 Codeit의  '개발자를 위한 SQL 데이터베이스' 강의를
참고하여 작성한 내용입니다.

 

반응형