자두의 데브로그

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

코딩테스트/SQL

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

왕자두 2024. 10. 11. 15:54

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이게 왜 틀렸나에 대해서 고민해봤으나... 이유를 모르겠어서 결국 찾아봤는데 .. 틀린 게 당연함.. 처음에 작성한 코드는 아래와 같은데 order by에서 TOTAL_DISTANCE로 정렬했다. 근데 이렇게 되면 km까지 포함해서 정렬하기 때문에 올바른 정렬 방법이 아니었다. 

그리고 틀린 걸 찾아보다가 행의 순서로 order by에 숫자를 넣어서 정렬해도 동일한 결과를 가지고 온다는 것을 처음 알았다.

-- 코드를 작성해주세요
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 TOTAL_DISTANCE desc;

 

order by TOTAL_DISTANCE desc = order by 2 desc

 

답은 km를 제외한 round까지만 한 결과 값으로 정렬한 것이기 때문에 아래와 같이 수정하면 맞출 수 있다.

-- 코드를 작성해주세요
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 round(sum(D_BETWEEN_DIST), 1) desc;