개발일지

[MySQL] CONCAT() / 노선별 평균 역 사이 거리 조회하기 본문

SQL

[MySQL] CONCAT() / 노선별 평균 역 사이 거리 조회하기

O'mil 2024. 4. 29. 07:16
728x90

🔗 링크

노선별 평균 역 사이 거리 조회하기

 

📌 문제 설명

Table: SUBWAY_DISTANCE

  • 노선별로 노선, 총 누계 거리, 평균 역 사이 거리를 조회
    총 누계거리는 역들의 역 사이 거리의 총 합을 뜻함
    총 누계거리의 컬럼명은 TOTAL_DISTANCE, 평균 역 사이 거리의 컬럼명은 AVERAGE_DISTANCE로 표기
    총 누계거리는 소수 둘째자리에서, 평균 역 사이 거리는 소수 셋째 자리에서 반올림 한 뒤 단위(km)를 함께 출력
    결과는 총 누계거리를 기준으로 내림차순 정렬

💻 코드

SELECT ROUTE,
ROUND(SUM(D_BETWEEN_DIST), 1) AS TOTAL_DISTANCE,
ROUND(AVG(D_BETWEEN_DIST), 2) AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY ROUTE
ORDER BY TOTAL_DISTANCE DESC;

 

 

💡 결과

 

 

❓ 의문점

  • 단위(km)를 어떻게 표기해야 할까?

 


📍 CONCAT

  • 문자열을 하나로 합쳐주는 함수
SELECT CONCAT(문자열1, 문자열2, ···) FROM 테이블명;

 

 

예시)

SELECT CONCAT('개발', '일지') FROM EXAMPLE;
//개발일지

 


💻 코드

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;

→ 마지막 줄 정렬 부분에서 'TOTAL_DISTANCE'라고 쓰면 테스트에서는 문제가 없는데 제출할 때 틀렸다고 뜬다.
찾아보니 'km' 때문에 제대로 정렬이 되지 않은 것 같다고 해서, 'ROUND(SUM(D_BETWEEN_DIST), 1)로 고쳐줬다.

 

 

💡 결과

 


📚Reference

[SQL] 문자열 연결 / 합치기 (CONCAT 함수)

 

 

 

728x90
Comments