[SQL] 연습

[MySQL] 프로그래머스 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기

Simon Yoon 2025. 4. 1. 23:41

문제:

사원별 성과금 정보 조회
- 사번, 성명, 평가 등급, 성과금 조회
- 사번 기준 오름차순

 

해결방법:

1. 점수에 따른 평가 등급, 평가 등급에 따른 성과금 계산 시 CASE 문 사용
2. 사원별 평가 등급 조회를 위해 GROUP BY 로 SCORE 에 대한 AVG 계산
3. 사원 정보 테이블을 INNER JOIN

 

예시 코드:

SELECT EMP.EMP_NO, EMP_NAME, G.GRADE,
    (CASE WHEN G.GRADE = 'S' THEN SAL * 0.2
    WHEN G.GRADE = 'A' THEN SAL * 0.15
    WHEN G.GRADE = 'B' THEN SAL * 0.1
    ELSE SAL * 0
    END) AS BONUS
FROM HR_EMPLOYEES EMP
INNER JOIN (
    SELECT EMP_NO,
        (CASE WHEN AVG(SCORE) >= 96 THEN 'S'
        WHEN AVG(SCORE) >= 90 THEN 'A'
        WHEN AVG(SCORE) >= 80 THEN 'B'
        ELSE 'C'
        END) AS GRADE
    FROM HR_GRADE
    GROUP BY EMP_NO
    ) AS G
ON EMP.EMP_NO = G.EMP_NO
;