반응형
데이터셋
- 캐글에 공개되어 있는 여성 의류 이커머스 관련 리뷰 데이터를 활용함
- https://www.kaggle.com/datasets/nicapotato/womens-ecommerce-clothing-reviews
- 데이터 모양 확인하기
SELECT *
FROM mydata.reviews
1) Division별 평점 분포 계산
- Division별로 평균 Rating을 계산함
SELECT `Division Name`,
AVG(Rating) AS AVG_Rating
FROM mydata.reviews
GROUP BY `Division Name`
ORDER BY AVG_Rating DESC
- Department별 평균 Rating도 구할 수 있음
SELECT `Department Name`,
AVG(Rating) AS AVG_Rating
FROM mydata.reviews
GROUP BY `Department Name`
ORDER BY AVG_Rating DESC
2) 분포 확인
- 연령대별 리뷰 분포를 알고자 한다.
- 일단 연령대를 구해야 함
- 2가지 방법이 있음 : (1) Case When, (2) Floor
- (1) CASE WHEN
SELECT *,
CASE WHEN Age BETWEEN 10 AND 19 THEN '10s'
WHEN Age BETWEEN 20 AND 29 THEN '20s'
WHEN Age BETWEEN 30 AND 39 THEN '30s'
WHEN Age BETWEEN 40 AND 49 THEN '40s'
WHEN Age BETWEEN 50 AND 59 THEN '50s'
WHEN Age BETWEEN 60 AND 69 THEN '60s'
WHEN Age BETWEEN 70 AND 79 THEN '70s'
WHEN Age BETWEEN 80 AND 89 THEN '80s'
WHEN Age BETWEEN 90 AND 99 THEN '90s' END AS Age_band
FROM mydata.reviews
- (2) FLOOR
SELECT *,
CONCAT(FLOOR(Age/10)*10, 's') Age_band
FROM mydata.reviews
- FLOOR가 개인적으로는 더 간단한 것 같다.
- 이렇게 만든 Age_band를 활용해서, Department = Trend인 경우의 연령 분포를 구할 수 있다.
SELECT CONCAT(FLOOR(Age/10)*10, 's') Age_band,
COUNT(*) CNT
FROM mydata.reviews
WHERE `Department Name` = 'Trend'
GROUP BY Age_band
ORDER BY Age_band
- 해당 연령의 리뷰를 추가로 확인하는 부분을 대시보드에 보여주면 좋을 것 같다.
- 50대의 3점 이하의 리뷰를 남긴 사람들의 리뷰를 확인할 수 있다.
SELECT *
FROM mydata.reviews
WHERE FLOOR(Age/10)*10 = 50
AND `Department Name` = 'Trend'
AND Rating <= 3
반응형
'Data Science > SQL' 카테고리의 다른 글
[SQL로 맛보는 데이터 전처리 분석] 자동차 매출 데이터를 이용한 지표 추출(실습) - 3 (0) | 2022.07.14 |
---|---|
[SQL로 맛보는 데이터 전처리 분석] 자동차 매출 데이터를 이용한 지표 추출(실습) - 2 (0) | 2022.07.12 |
[SQL로 맛보는 데이터 전처리 분석] 자동차 매출 데이터를 이용한 지표 추출(실습) - 1 (0) | 2022.07.11 |
[SQL로 맛보는 데이터 전처리 분석] 기본 문법 정리 - 2 (0) | 2022.07.07 |
[SQL로 맛보는 데이터 전처리 분석] 기본 문법 정리 - 1 (0) | 2022.07.06 |
댓글