[MySQL_Lv2] 노선별 평균 역 사이 거리 조회하기. CONCAT, ROUND

박경희·2025년 2월 11일

코딩테스트

목록 보기
53/69

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;

ORDER BY 2 DESC를 사용하면?

  • 2TOTAL_DISTANCE컬럼을 의미하지만, CONCAT()을 사용했기 때문에 문자열(String) 정렬이 적용된다.
  • 문자열 정렬은 숫자 정렬과 다르게 작동할 수 있어 정확한 답이 아니게 된다.

ORDER BY SUM(D_BETWEEN_DIST) DESC를 사용

  • SUM(D_BETWEEN_DIST)는 숫자 값이므로 정렬이 정확하게 적용된다.
  • CONCAT()로 변환된 TOTAL_DISTANCE가 아니라, 원래의 숫자 값(SUM)을 기준으로 정렬한다.

0개의 댓글