🔗 1. 문제 URL
프로그래머스 문제 바로가기 👉
https://school.programmers.co.kr/learn/courses/30/lessons/284531#qna
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📝 2. 문제 요구사항 정리
이번 문제는 SUBWAY_DISTANCE 테이블을 활용해서
노선(ROUTE)별로 거리 정보를 계산해 보는 SQL 문제예요.
아래 요구사항만 잘 지키면 어렵지 않게 풀 수 있습니다!
✔ 요구사항 요약
- ROUTE(노선명) 기준으로 그룹화
- 총 누계 거리(TOTAL_DISTANCE)
- D_BETWEEN_DIST(역 사이 거리)의 합계
- 소수 둘째 자리에서 반올림 → 소수 첫째 자리까지만 표시
- 뒤에 'km' 붙여 출력
- 평균 역 사이 거리(AVERAGE_DISTANCE)
- D_BETWEEN_DIST의 평균
- 소수 셋째 자리에서 반올림 → 소수 둘째 자리까지 표시
- 뒤에 'km' 붙여 출력
- 출력은 총 누계 거리 기준 내림차순 정렬
- MySQL에서는 문자열 결합을 CONCAT() 함수로 해야 함
✅ 3. 정답 SQL 코드
SELECT ROUTE
, CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE
, CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2), 'km') AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC;
💡 4. 풀이하면서 느낀 점
SQLD 공부를 오래 하다 보니까
문자열 연결할 때 습관적으로 **Oracle 방식(||)**이 먼저 떠오르더라고요.
근데 MySQL에서는 ||가 문자열 연결이 아니라 논리 OR로 처리돼서,
이 문제를 풀면서 다시 한 번
“아, MySQL에서는 무조건 CONCAT()를 써야지!”
라는 걸 확실히 기억하게 됐습니다.
궁금하신 점이나 포스팅에 대한 피드백이 있다면 댓글로 편하게 남겨주세요.
도움이 되셨다면 공감이나 댓글 한 줄 남겨주시면 포스팅을 이어가는 데 큰 힘이 됩니다. 😊
'코딩테스트 > MYSQL' 카테고리의 다른 글
| [프로그래머스 LV.2] 성분으로 구분한 아이스크림 총 주문량 — MySQL 정답 & 해설 (0) | 2025.12.01 |
|---|---|
| [프로그래머스 LV.2] 조건에 맞는 도서와 저자 리스트 출력하기 — MySQL 정답 & 해설 (3) | 2025.11.29 |
| [프로그래머스 LV.2] 조건에 맞는 사원 정보 조회하기 — MySQL 정답 & 해설 (0) | 2025.11.29 |
| [프로그래머스 LV.2] ROOT 아이템 구하기 — MySQL 정답 & 해설 (0) | 2025.11.27 |
| [프로그래머스 LV.2] 업그레이드 된 아이템 구하기 — MySQL 정답 & 해설 (0) | 2025.11.21 |