코딩테스트/SQL

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

_알파카 2024. 8. 20. 17:31
728x90

문제 설명

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

 

프로그래머스

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

programmers.co.kr

 

내 풀이

SELECT ROUTE
    , CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE
    , CONCAT(ROUND(SUM(D_BETWEEN_DIST) / COUNT(*), 2), 'km') AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC;

 

사실 처음에는 오답이 나서 대체 어디서 틀렸는지 한참을 찾았다ㅠㅠ

알고보니 round 함수에서 각각 소수 둘째자리, 소수 셋째 자리까지 나타내는 것으로 착각해서 틀렸던 것이였다^^

아무튼, round 함수로 문제에서 주어진대로 반올림을 하고, 

concat 함수를 사용해서 'km'를 붙여주면 된다. 

 

문자열 합치기 함수 - concat

MySQL에도 파이썬과 동일한 문자열 합치기 함수 concat이 존재한다.

CONCAT(문자(데이터), 문자(데이터), ...) AS '칼럼명'
SELECT CONCAT(NAME, '는', CLASS, '반이고', POINT, '점이다')
-- 영희는 A반이고 95점이다

 

위와 같이 원하는 데이터와 원하는 문자열을 함께 작성해주면, 

원하는 형식으로 새로운 문자열을 출력할 수 있다! 

 

728x90