본문 바로가기
DATABASE

Q. 카테고리 별 평점이 낮은 주요 5개의 상품 조회

by nyang2 2023. 11. 24.

필요 데이터 :

 

데이터 모두 classicmodels.dataset2

상품의 소분류 (카테고리)  ➜ Department Name

상품 번호 ➜ Clothing ID

리뷰의 평점 ➜ Rating

 

조회방법

 

1. 카테고리와 상품별로 묶어 평균 평점을 조회해보자

해석
카테고리와 상품별로 묶기 위해 group by  를 이용하여 그룹화를 해준다.
평균 평점을 구하기 위해 avg() 집계함수를 이용하고 컬럼명을 AVG_RT 로 설정해준다.

 

 

2. (1) 번의 내용을 이용하여 'Department Name' 별로 평균 평점 기준 순위를 산출하기

   이 때, 중복순위는 없어야 하며 평균 평점이 낮은 것이 1등이다.

해석
순위를 산출하기 위해 row_number() 함수를 사용해준다. row_number() 함수는 중복 순위 없이 순위를 산출해준다.
`Department Name` 별로 산출하기 위해 partition by  를 이용하여 분류해준다.
그리고 평균 평점 기준으로 순위를 산출한다.
이때, 낮은 것이 1등이 되어야 하는데 row_number() 의 정렬 기본값은 오름차순이다. 그렇기 때문에 따로 설정해주지 않아도 된다
하지만 높은 것이 1등이 되어야 하는 상황이라면 desc 를 사용하여 내림차순으로 변경해주어야 한다.

 

 

3. 상위 5개씩만 출력하고 테이블화 해주기 (테이블명 : data_stat )

해석
상위 5개씩만 추려내기 위해 (2) 번의 내용을 서브쿼리로 이용해준다.
그리고 조건절 where 을 통해 5개씩만 출력한다.

테이블화를 해주기 위해
create table 데베명.테이블명 as
으로 코드를 작성해준다.

(다음 글에서 필요한 데이터라 테이블화 해주었습니다.)