몸과 마음이 건전한 SW 개발자

[SQL-GROUP BY] 프로그래머스 Lv. 2 노선별 평균 역 사이 거리 조회하기 [다시 풀어 보기] 본문

SQL/다시 풀어 보기

[SQL-GROUP BY] 프로그래머스 Lv. 2 노선별 평균 역 사이 거리 조회하기 [다시 풀어 보기]

스위태니 2024. 12. 19. 20:43

문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

정답 코드

WITH LINE_TABLE AS (
    SELECT
        ROUTE,
        SUM(D_BETWEEN_DIST) AS TOTAL_DISTANCE,
        AVG(D_BETWEEN_DIST) AS AVERAGE_DISTANCE 
    FROM SUBWAY_DISTANCE
    GROUP BY ROUTE
)
SELECT 
    ROUTE, 
    CONCAT(ROUND(TOTAL_DISTANCE, 1), "km") AS TOTAL_DISTANCE, 
    CONCAT(ROUND(AVERAGE_DISTANCE, 2), "km") AS AVERAGE_DISTANCE
FROM LINE_TABLE LT
ORDER BY LT.TOTAL_DISTANCE DESC;

풀이 과정

  1. LINE_TABLE을 만든다.
  2. CONCAT을 사용해서 km단위로 출력한다.
  3. 정렬할 때 TOTAL_DISTANCE로 하게 되면 CONCAT로 km와 묶은 2.5km와 같은 문자로 정렬된다.
  4. 따라서 LINE_TABLE의 가공되지 않은 LT.TOTAL_DISTANCE의 (숫자값)으로 정렬해야 한다.

느낀점

  • 테이블 명이 겹칠 수 있다는 것을 배웠다.