https://solvesql.com/problems/refine-cafe-address/
https://solvesql.com/problems/refine-cafe-address/
solvesql.com
🔍 문제
2024년 6월 기준, 서울부터 제주까지 전국의 카페 정보를 담은 데이터베이스가 있습니다.
address 컬럼에는 카페의 전체 주소가 들어있지만,
시·도 / 시·군·구 단위로 정제되어 있지 않아 행정구역별 분석이 어렵습니다.
✅ address 컬럼에서
- 시·도 정보(sido)
- 시·군·구 정보(sigungu)를 추출하여 정제하기
- 각 행정구역(sido, sigungu)별 카페 수를 집계(COUNT)
- 카페가 가장 많은 순서로 정렬하여 출력
🎯정답
-- with문을 이용해서 각 행을 sido와 sigungu만 나타내도록 변경했다.
with sido as (
select
-- 문자열을 나누기 위해 split_part 사용
split_part(address, ' ', 1) as sido,
split_part(address, ' ', 2) as sigungu
from cafes)
select sido, sigungu, count(*) as cnt
from sido
group by sido, sigungu
order by 3 DESC;
❓풀이
- 주소의 문자열을 나누기 위해 `split_part`를 이용했다. with문을 실행시키면 다음과 같이 나온다.

- 이제 sido와 sigungu순서로 그룹화하고 고유값 개수를 구해주면 된다.

'프로그래밍 언어 > 02. SQL' 카테고리의 다른 글
| [solvesql] LV.4 레스토랑 요일 별 구매금액 Top 3 영수증 (0) | 2025.11.15 |
|---|---|
| [PostgreSQL] solvesql LV.3 미세먼지 수치의 계절간 차이 (with 중앙값 구하는 방법) (0) | 2025.10.22 |
| [PostgreSQL] solvesql LV.3 멀티 플랫폼 게임 찾기 (0) | 2025.10.21 |
| [PostgreSQL] solvesql LV.3 폐쇄할 따릉이 정류소 찾기 2 (0) | 2025.10.15 |
| [PostgreSQL] solvesql LV.3 서울숲 요일별 대기오염도 계산하기 (with.날짜에서 요일 출력하기) (0) | 2025.10.15 |
