https://school.programmers.co.kr/learn/courses/30/lessons/284531
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
SUBWAY_DISTANCE 테이블에서 노선별로 노선, 총 누계 거리, 평균 역 사이 거리를 노선별로 조회하는 SQL문을 작성해주세요.
총 누계거리는 테이블 내 존재하는 역들의 역 사이 거리의 총 합을 뜻합니다. 총 누계 거리와 평균 역 사이 거리의 컬럼명은 각각 TOTAL_DISTANCE, AVERAGE_DISTANCE로 해주시고, 총 누계거리는 소수 둘째자리에서, 평균 역 사이 거리는 소수 셋째 자리에서 반올림 한 뒤 단위(km)를 함께 출력해주세요.
결과는 총 누계 거리를 기준으로 내림차순 정렬해주세요.
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
- ROUND(값, 자릿수 표시) : ROUND(평균 값, 1) -> 평균값을 소수 첫째 자리까지 표시(반올림)
- CONCAT(값1, 값2, 값3...) : 값1+값2+값3 더하여 문자열 출력
- ORDER BY 에서는 TOTAL_DISTANCE(총 누계거리)를 기준으로 내림차순 정렬이지만, CONCAT으로 문자열로 만들었기 때문에 제대로 정렬이 안되는 문제 발생. 따라서, 수치형 값인 ROUND(SUM(D_BETWEEN_DIST), 1)로 값을 정렬
'SQL' 카테고리의 다른 글
[MYSQL] 프로그래머스(LEVEL 4) - 저자 별 카테고리 별 매출액 집계하기 (0) | 2025.02.18 |
---|---|
[MYSQL] 프로그래머스(LEVEL 3) - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2025.02.16 |
[MYSQL] 프로그래머스(LEVEL 2) - 자동차 평균 대여 기간 구하기 (0) | 2025.02.14 |
[MYSQL] 프로그래머스(LEVEL 4) - 서울에 위치한 식당 목록 출력하기 (0) | 2025.02.12 |
[MYSQL] 프로그래머스(LEVEL 4) - 서울에 위치한 식당 목록 출력하기 (0) | 2025.02.11 |