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

[SQL-GROUP BY] 프로그래머스 Lv. 3 부서별 평균 연봉 조회하기 본문

SQL/GROUP BY

[SQL-GROUP BY] 프로그래머스 Lv. 3 부서별 평균 연봉 조회하기

스위태니 2024. 12. 23. 20:03

문제 링크

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

 

프로그래머스

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

programmers.co.kr

정답 코드

WITH AVG_EMPLOYEES AS (
    SELECT
        DEPT_ID,
        ROUND(AVG(SAL)) AS AVG_SAL
    FROM HR_EMPLOYEES
    GROUP BY DEPT_ID
), AVG_DEPT_NAME_EN AS (
    SELECT
        AE.DEPT_ID,
        HD.DEPT_NAME_EN,
        AE.AVG_SAL
    FROM AVG_EMPLOYEES AE
    JOIN HR_DEPARTMENT HD
    ON AE.DEPT_ID = HD.DEPT_ID
)
SELECT
    DEPT_ID,
    DEPT_NAME_EN,
    AVG_SAL
FROM AVG_DEPT_NAME_EN
ORDER BY AVG_SAL DESC;

풀이 과정

 

  1. AVG_EMPLOYEES에서 부서별 평균 급여를 계산한다.
  2. AVG_DEPT_NAME_EN에서 부서 이름과 평균 급여를 결합한다.
  3. 최종 결과를 평균 급여 내림차순으로 정렬하여 출력한다.

 

느낀점

  • 다음과 같은 장점이 있는 것 같다.
  • 모듈화된 설계: 각 단계가 명확하게 분리되어 데이터 처리 흐름이 직관적이다.
  • 정확한 출력: 부서 ID와 부서 이름이 함께 출력되어 데이터가 더 이해하기 쉽다.