본문 바로가기
SQL

[solvesql - day 19] 전국 카페 주소 데이터 정제하기

by 우솨 2025. 1. 11.

https://solvesql.com/problems/refine-cafe-address/

 

https://solvesql.com/problems/refine-cafe-address/

 

solvesql.com

-- 카페 데이터를 기반으로, 각 지역(시도, 시군구)별 카페 수를 계산하고,
-- 카페 수가 많은 순서대로 정렬하여 출력

SELECT
    -- 'address' 컬럼에서 첫 번째 공백(' ') 전까지의 문자열을 'sido'로 추출
    -- 'sido'는 대한민국에서 시도를 나타냄
    substr(address, 1, instr(address, ' ') - 1) AS sido,

    -- 'address'에서 첫 번째 공백 뒤의 문자열 중, 두 번째 공백 전까지의 문자열을 'sigungu'로 추출
    -- 'sigungu'는 대한민국에서 시군구를 나타냄
    substr(
        address,
        instr(address, ' ') + 1,  -- 첫 번째 공백 뒤부터 시작
        instr(substr(address, instr(address, ' ') + 1), ' ') - 1  -- 두 번째 공백 전까지 추출
    ) AS sigungu,

    -- 'sido'와 'sigungu'별로 카페의 개수를 세기
    COUNT(*) AS cnt
FROM cafes
GROUP BY sido, sigungu  -- 시도와 시군구별로 그룹화
ORDER BY cnt DESC  -- 카페 수가 많은 순서대로 내림차순 정렬