프로그래머스/쿼리
[oracle] GROUP BY - 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기
have a good time
2025. 3. 25. 17:49
SELECT A.EMP_NO, A.EMP_NAME, B.GRADE, A.SAL * B.AVG AS BONUS
FROM
HR_EMPLOYEES A
JOIN (
SELECT EMP_NO,
CASE
WHEN AVG(SCORE) >= 96 THEN 0.2
WHEN AVG(SCORE) >= 90 THEN 0.15
WHEN AVG(SCORE) >= 80 THEN 0.1
ELSE 0
END AS "AVG",
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
) B
ON A.EMP_NO = B.EMP_NO;