now is better than never

[Oracle] 서울 커피전문점 데이터 분석하기 본문

SQL/프로젝트

[Oracle] 서울 커피전문점 데이터 분석하기

김초송 2022. 12. 19. 18:39
-- 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;

22년 커피전문점 top10의 19년 대비 매장 증감수

 

-- 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위로 나오길래 집계에서 제외함.

19년/22년 커피전문점 top10

조인쓰기 귀찮아서 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;

  • 메가커피, 컴포즈커피, 빽다방 등 저렴한 커피 매장이 급증했다
  • 대체적으로 커피 산업은 증가하는 추세다. 

 

본 내용은 아이티윌 '빅데이터&머신러닝 전문가 양성 과정' 을 수강하며 작성한 내용입니다.