728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/284531
내 풀이
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
'코딩테스트 > SQL' 카테고리의 다른 글
[프로그래머스][MySQL] Lv. 2 가격대 별 상품 개수 구하기 (0) | 2024.08.13 |
---|---|
[프로그래머스][MySQL] Lv. 4 입양 시각 구하기(2) (2) | 2024.08.12 |
[프로그래머스][MySQL] Lv. 4 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2024.08.07 |
[프로그래머스][MySQL] Lv. 2 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.08.05 |
[프로그래머스][MySQL] Lv. 3 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.08.05 |