[프로그래머스 LV.2] 노선별 평균 역 사이 거리 조회하기 — MySQL 정답 & 해설

2025. 11. 20. 19:51·코딩테스트/MYSQL

🔗 1. 문제 URL

프로그래머스 문제 바로가기 👉
https://school.programmers.co.kr/learn/courses/30/lessons/284531#qna

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


 

📝 2. 문제 요구사항 정리

이번 문제는 SUBWAY_DISTANCE 테이블을 활용해서
노선(ROUTE)별로 거리 정보를 계산해 보는 SQL 문제예요.

아래 요구사항만 잘 지키면 어렵지 않게 풀 수 있습니다!

✔ 요구사항 요약

  1. ROUTE(노선명) 기준으로 그룹화
  2. 총 누계 거리(TOTAL_DISTANCE)
    • D_BETWEEN_DIST(역 사이 거리)의 합계
    • 소수 둘째 자리에서 반올림 → 소수 첫째 자리까지만 표시
    • 뒤에 'km' 붙여 출력
  3. 평균 역 사이 거리(AVERAGE_DISTANCE)
    • D_BETWEEN_DIST의 평균
    • 소수 셋째 자리에서 반올림 → 소수 둘째 자리까지 표시
    • 뒤에 'km' 붙여 출력
  4. 출력은 총 누계 거리 기준 내림차순 정렬
  5. 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
'코딩테스트/MYSQL' 카테고리의 다른 글
  • [프로그래머스 LV.2] 조건에 맞는 도서와 저자 리스트 출력하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 조건에 맞는 사원 정보 조회하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] ROOT 아이템 구하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 업그레이드 된 아이템 구하기 — MySQL 정답 & 해설
작지만 꾸준한 성장으로
작지만 꾸준한 성장으로
contact
  • 작지만 꾸준한 성장으로
    파랑새
    작지만 꾸준한 성장으로
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • IT (3)
      • 코딩테스트 (23)
        • 알고리즘 (12)
        • MYSQL (11)
      • 패션 (0)
      • 독후감 (0)
      • TIL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코테
    Pandas groupby agg
    long format
    와이드 포맷 롱 포맷
    코딩테스트
    파이썬
    모델 추론
    Programmers
    sql 코딩테스트
    공공데이터 전처리
    프로그래머스
    Pandas pivot
    프로그래머스 lv.0
    mysql
    데이터 리모델링
    SWEA
    프로그래머스 lv.2
    프로그래머스 lv.1
    CPU Bound
    wide format
    I/O Bound
    데이터 전처리 파이프라인
    python3
    Pandas melt
    Python
    자바
    데이터베이스
    알고리즘
    파이썬코테
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
작지만 꾸준한 성장으로
[프로그래머스 LV.2] 노선별 평균 역 사이 거리 조회하기 — MySQL 정답 & 해설
상단으로

티스토리툴바