inblog logo
|
miniiya
    코딩테스트프로그래머스MySQL

    [프로그래머스/MySQL] 노선별 평균 역 사이 거리 조회하기(개념 및 정답)

    ORDER BY, SQL 명령어의 논리적 실행 순서
    Seo Jimin's avatar
    Seo Jimin
    Mar 10, 2026
    [프로그래머스/MySQL] 노선별 평균 역 사이 거리 조회하기(개념 및 정답)
    Contents
    문제 링크개념ORDER BY확장 개념제출 답안

    문제 링크

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

    개념

    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;
    처음에 적었던 위의 답은 왜 틀렸을까?
    TOTAL_DISTANCE는 CONCAT을 하여 String이기 때문에 문자로 정렬되며, 문자열 정렬은 사전순이다. 따라서 총 누계 거리를 기준으로 내림차순 하려면 ROUND(SUM(D_BETWEEN_DIST)로 ORDER BY 해야한다.

    확장 개념

    SQL 명령어의 논리적 실행 순서

    1. FROM 2. ON 3. JOIN 4. WHERE 5. GROUP BY 6. HAVING 7. SELECT (프로젝션) 8. DISTINCT 9. ORDER BY 10. LIMIT

    제출 답안

    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;
     
    Share article
    Contents
    문제 링크개념ORDER BY확장 개념제출 답안

    miniiya

    RSS·Powered by Inblog