now is better than never
[Oracle] 서울 커피전문점 데이터 분석하기 본문
-- WITH VIEW
WITH coffee_2022 AS
(SELECT CASE WHEN 상호명 LIKE '%이디야%커피%' THEN '이디야커피'
WHEN 상호명 LIKE '%스타벅스%' THEN '스타벅스'
WHEN 상호명 LIKE '%메가%커피%' THEN '메카커피'
WHEN 상호명 LIKE '%컴포즈%커피%' THEN '컴포즈커피'
ELSE 상호명
END 상호명
FROM market_2022
WHERE 상권업종중분류명 = '커피점/카페')
, coffee_2019 AS
(SELECT CASE WHEN 상호명 LIKE '%이디야%커피%' THEN '이디야커피'
WHEN 상호명 LIKE '%스타벅스%' THEN '스타벅스'
WHEN 상호명 LIKE '%메가%커피%' THEN '메카커피'
WHEN 상호명 LIKE '%컴포즈%커피%' THEN '컴포즈커피'
ELSE 상호명
END 상호명
FROM market_2019
WHERE 시도명 = '서울특별시' AND 상권업종중분류명 = '커피점/카페')
-- 22년 top10 커피전문점의 19년 대비 매장 수 비교
SELECT c22.상호명, c22.건수 AS "22년", c19.건수 AS "19년", c22.건수-c19.건수 차이
FROM
(SELECT 상호명, COUNT(*) 건수
FROM coffee_2022
GROUP BY 상호명
ORDER BY 2 desc) c22
JOIN
(SELECT 상호명, COUNT(*) 건수
FROM coffee_2019
GROUP BY 상호명
ORDER BY 2 desc) c19
ON c22.상호명 = c19.상호명
ORDER BY 2 DESC FETCH FIRST 10 ROWS ONLY;

-- 19년, 22년 커피 top 10
(SELECT 상호명, COUNT(*) 건수
FROM money_coffee_2019
WHERE 상호명 NOT LIKE '%화피디Cafe'
GROUP BY 상호명
ORDER BY 2 DESC FETCH FIRST 10 ROWS only)
UNION ALL
(SELECT 상호명, COUNT(*) 건수
FROM money_coffee_2022
WHERE 상호명 != '카페'
GROUP BY 상호명
ORDER BY 2 DESC FETCH FIRST 10 ROWS ONLY);
화피디랑 카페는 커피체인점이 아닌데 같은 상호명으로 집계돼서 1위로 나오길래 집계에서 제외함.

조인쓰기 귀찮아서 UNION ALL 썼는데 역시나 가독성 최악 ㅋㅋ ㅠㅠ
-- 19년 22년 상위 10개 커피전문점 순위, 매장수 보기
SELECT rownum, c22.상호명 "22년 순위", c22.건수, c19.상호명 "19년 순위", c19.건수
FROM
(SELECT RANK() OVER (ORDER BY COUNT(*) desc) rank, 상호명, COUNT(*) 건수
FROM coffee_2022
GROUP BY 상호명) c22
JOIN
(SELECT RANK() OVER (ORDER BY COUNT(*) desc) rank, 상호명, COUNT(*) 건수
FROM coffee_2019
GROUP BY 상호명) c19
ON c22.rank = c19.rank
WHERE c22.RANK BETWEEN 2 AND 11;

- 메가커피, 컴포즈커피, 빽다방 등 저렴한 커피 매장이 급증했다
- 대체적으로 커피 산업은 증가하는 추세다.
본 내용은 아이티윌 '빅데이터&머신러닝 전문가 양성 과정' 을 수강하며 작성한 내용입니다.
'SQL > 프로젝트' 카테고리의 다른 글
[Oracle] 서울 버거체인점 데이터 분석하기 (1) | 2022.12.22 |
---|---|
[Oracle] PIVOT ROUND, IN 서브쿼리 (0) | 2022.12.12 |
[Oracle] 공공데이터 서울 상가(상권)정보 분석하기 3 (0) | 2022.12.08 |
[Oracle] SELECT 모든 컬럼(*)에 다른 컬럼 추가하기 (0) | 2022.12.08 |
[Oracle] 서울 커피체인점 비교하기 - group by decode / case when (0) | 2022.12.08 |