SELECT route ROUTE, concat(round(sum(d_between_dist),1),'km') TOTAL_DISTANCE, concat(round(avg(d_between_dist),2),'km') AVERAGE_DISTANCE
from subway_distance
group by 1
order by TOTAL_DISTANCE*1 desc
SELECT route ROUTE, concat(round(sum(d_between_dist),1),'km') TOTAL_DISTANCE, concat(round(avg(d_between_dist),2),'km') AVERAGE_DISTANCE
from subway_distance
group by 1
order by 2 desc
테스트에서는 성공인데, 제출하면 오답으로 떴다.
정렬이 문제였는데, 문자열 기준으로 정렬이 되어 숫자 정렬로 바꾸어주어야 했다.
문자 -> 숫자 정렬로 바꾸는데 2가지 방법이 있다.
order by cast(TOTAL_DISTANCE as SIGNED) desc
order by TOTAL_DISTANCE*1 desc
값이 변하지 않는 *1를 덧붙여, 숫자 타입이라는 걸 묵시적으로 선언한다.
SELECT route ROUTE, concat(round(sum(d_between_dist),1),'km') TOTAL_DISTANCE, concat(round(avg(d_between_dist),2),'km') AVERAGE_DISTANCE
from subway_distance
group by 1
order by SUM(d_between_dist) desc
아예 정렬을 km 붙이기 전 상태 숫자 기준으로 정렬했다.