SQL Coding Test/[Programmers]

[Programmers] 조건에 맞는 사원 정보 조회하기 (Lv.2)

duswn1204 2026. 5. 21. 14:31

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/284527


🖥️ 문제 풀이

SELECT
    SUM(G.SCORE) AS SCORE,
    E.EMP_NO,
    E.EMP_NAME,
    E.POSITION,
    E.EMAIL
FROM HR_EMPLOYEES E
JOIN HR_GRADE G ON E.EMP_NO = G.EMP_NO
WHERE G.YEAR = 2022
GROUP BY E.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAIL
HAVING E.EMP_NO = (
    SELECT EMP_NO
    FROM HR_GRADE
    GROUP BY EMP_NO
    ORDER BY SUM(SCORE) DESC
    LIMIT 1
);

💡 문제 해결

실행 흐름

HR_EMPLOYEES와 HR_GRADE를 EMP_NO 기준으로 JOIN

2022년 데이터만 필터링

사원별로 GROUP BY

상/하반기 SCORE 합산

가장 높은 총점과 같은 사원만 HAVING으로 필터링

최종 컬럼 출력