https://school.programmers.co.kr/learn/courses/30/lessons/284531
노선 별 총 누계 거리 , 평균 역 사이 거리 를 계산해야 한다.
각 키워드 별로 정리하면 다음과 같다.
-- 총 누계 거리
CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE
-- 평균 역 사이 거리
CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2), 'km') AS AVERAGE_DISTANCE
-- 노선 별
GROUP BY
ROUTE
주의해야할 것은
ROUND(SUM()) 과 SUM(ROUND()) 를 바꿔쓰면 안된다.
합친 결과를 반올림하는 것과 반올림 한 것을 합치는 것은 엄연히 다른 결과가 나올 수 있다.
또 한 가지 주의할 것은
총 누계 거리 를 기준으로 내림차순이다.
ORDER BY
TOTAL_DISTANCE DESC
위에서 사용한 alias를 그대로 가져오면 틀린 값이 나온다.
그 이유는 TOTAL_DISTANCE 가 더 이상 숫자가 아니기 때문이다.
따라서 아래와 같이
ORDER BY
SUM(D_BETWEEN_DIST) DESC
반올림하기 전 진짜 누계 거리를 가지고 내림차순 정렬을 해야한다.
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
더 좋은 해결방법이 있다면 언제든 댓글로 알려주세요 🤗