🔗 문제 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으로 필터링 ↓ 최종 컬럼 출력 |
'SQL Coding Test > [Programmers]' 카테고리의 다른 글
| [Programmers] 연도별 대장균 크기의 편차 구하기 (Lv.2) (0) | 2026.05.23 |
|---|---|
| [Programmers] 업그레이드 된 아이템 구하기 (Lv.2) (0) | 2026.05.23 |
| [Programmers] 가격대 별 상품 개수 구하기 (Lv.2) (0) | 2026.05.21 |
| [Programmers] 카테고리 별 상품 개수 구하기 (Lv.2) (0) | 2026.05.21 |
| [Programmers] 특정 형질을 가지는 대장균 찾기 (Lv.1) (0) | 2026.05.20 |