| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 프로그래머스 #수열과 구간 쿼리1 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #합성수 찾기 #알고리즘 #Java #자바 #stiudy #코린이 #개발자 #공부 #성장
- 프로그래머스 #1로 만들기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #세로 읽기 #알고리즘 #개발자 #코린이 #study #성장 #Java #자바
- 프로그래머스 #부분 문자열 이어 붙여 문자열 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #조건에 맞게 수열 변환하기 1 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #카테고리 별 도서 판매량 집계하기 #알고리즘 #쿼리문 #MySQL #코린이 #개발자 #study #취준
- 프로그래머스 #열의 길이를 2의 거듭제곱으로 만들기 #Java #자바 #알고리즘 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #길이에 따른 연산 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #간단한 식 계산하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #날짜 비교하기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #조건에 맞는 사용자와 총 거래금액 조회하기 #알고리즘 #Mysql #DB #쿼리문 #코린이 #개발자 #study #공부 #성장
- 파이썬 #input() #sys.stdin.readline() #공부 #study
- 코린이 #개발자 #study
- 프로그래머스 #특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #오랜 기간 보호한 동물(1) #알고리즘 #MySQL #DB #쿼리문 #개발자 #study #성장 #코린이
- 프로그래머스 #문자열이 몇 번 등장하는지 세기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #있었는데요 없었습니다 #DB #MySQL #알고리즘 #쿼리문 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #문자열 뒤집기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #수열과 구간 쿼리 3 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #할 일 목록 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 백준 #
- 프로그래머스 #배열만들기 5 #알고리즘 #study #Java #코린이 #개발자 #성장 #공부
- 프로그래머스 #소수 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #MySQL #쿼리문 #알고리즘 #코린이 #개발자 #study #취준
- 프로그래머스 #배열 회전시키기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #중복된 문자 제거 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #등차수열의 특정한 항만 더하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부
- 프로그래머스 #푸드 파이트 대회 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #2차원으로 만들기 #알고리즘 #Java #자바 #study #코린이 #개발자 #공부 #성장
- Today
- Total
luke
[프로그래머스] - 노선별 평균 역 사이 거리 조회하기 (MySQL) 본문
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/284531#
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제.


풀이.
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 SUM(D_BETWEEN_DIST) DESC
이번 문제는 프로그래머스 "노선별 평균 역 사이 거리 조회하기" MySQL 문제다.
SQL 문제 바로 전 게시글의 문제와 비슷하다. 다른 점이라면 특정 컬럼 값에 "km"라는 문자를 붙여 줘야 한다는 거다.
그럼 바로 문제 풀이 해보겠다.
1. TOTAL_DISTANCE 컬럼은 합을 구하고 소수점 둘째 자리에서 반올림해주기 위해 처음에 SUM() 함수로 합을 구해준다.
다음으로 소수점 두번째 자리에서 반올림이니 ROUND() 함수를 사용해서 소수점 1자리만 나오게 해 준다. 마지막으로 "km"를 붙여 주기 위해 CONCAT() 함수를 사용해 준다.
(예를 들자면 CONCAT("감사합니다.", "다음에 또 오세요")라 하면 "감사합니다. 다음에 또 오세요"라고 출력된다. 이 함수는 2개 이상의 문자열이 있을 경우 합쳐준다.)
2. TOTAL_DISTANCE 값이 합을 구하는 거였다면 AVERAGE_DISTANCE는 평균을 구하니 AVG() 함수를 사용해주고 나머지는 위와 같다 다만 소수점 3번째 자리에서 반올림하니 2번째 자리만 나오게 해 준다.
3. ROUTE 컬럼 으로 그룹을 지어준다.
4. 마지막으로 내림차순인데 그냥 TOTAL_DISTANCE를 해주면 에러가 난다.
왜냐하면 CONCAT()을 쓰는 순간 문자열로 되어버렸기 때문에 숫자와 다르게 내림 차순 정렬을 제대로 해줄 수 없다.
그래서 합을 구한 SUM(D_BETWEEN_DIST)로 해줘야 정상적으로 내림차순 정렬이 된다.
'DB > 프로그래머스(MySQL)' 카테고리의 다른 글
| [프로그래머스] - 업그레이드 된 아이템 구하기 (MySQL) (0) | 2025.10.23 |
|---|---|
| [프로그래머스] - 분기별 분화된 대장균의 개체 수 구하기 (MySQL) (0) | 2025.10.22 |
| [프로그래머스] - 자동차 평균 대여 기간 구하기 (MySQL) (0) | 2025.10.16 |
| [프로그래머스] - 특정 물고기를 잡은 총 수 구하기 (MySQL) (0) | 2025.10.14 |
| [프로그래머스] - 조건에 맞는 사원 정보 조회하기 (MySQL) (0) | 2025.10.12 |