[프로그래머스-SQL]노선별 평균 역 사이 거리 조회하기

문제

https://school.programmers.co.kr/learn/courses/30/lessons/284531

 

SELECT 
    ROUTE,
    CONCAT(CAST(ROUND(SUM(D_BETWEEN_DIST), 1) AS CHAR), 'km') AS TOTAL_DISTANCE,
    CONCAT(CAST(ROUND(AVG(D_BETWEEN_DIST), 2) AS CHAR), 'km') AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC;

 

각 부분 설명

  • ROUTE: 노선 정보를 그대로 가져옵니다.
  • TOTAL_DISTANCE 계산:
    • SUM(D_BETWEEN_DIST): 각 노선별 역 사이 거리의 총합을 계산
    • ROUND(..., 1): 소수점 첫째 자리까지 반올림 (둘째 자리에서 반올림)
    • CAST(... AS CHAR): 숫자를 문자열로 변환
    • CONCAT(..., 'km'): 변환된 숫자와 'km' 단위를 이어붙임
  • AVERAGE_DISTANCE 계산:
    • AVG(D_BETWEEN_DIST): 각 노선별 역 사이 거리의 평균을 계산
    • ROUND(..., 2): 소수점 둘째 자리까지 반올림 (셋째 자리에서 반올림)
    • CAST(... AS CHAR): 숫자를 문자열로 변환
    • CONCAT(..., 'km'): 변환된 숫자와 'km' 단위를 이어붙임
  • GROUP BY ROUTE: 노선별로 데이터를 그룹화
  • ORDER BY SUM(D_BETWEEN_DIST) DESC: 총 거리를 기준으로 내림차순 정렬