[프로글머스_SQL] 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기
📜문제
https://school.programmers.co.kr/learn/courses/30/lessons/284528
📜정답
SELECT B.EMP_NO,B.EMP_NAME,
(CASE
WHEN AVG(C.SCORE)>=96 THEN 'S'
WHEN AVG(C.SCORE)>=90 THEN 'A'
WHEN AVG(C.SCORE)>=80 THEN 'B'
ELSE 'C'
END)AS GRADE,
(CASE
WHEN AVG(C.SCORE)>=96 THEN B.SAL * 0.2
WHEN AVG(C.SCORE)>=90 THEN B.SAL * 0.15
WHEN AVG(C.SCORE)>=80 THEN B.SAL * 0.1
ELSE B.SAL * 0
END) AS BONUS
FROM HR_DEPARTMENT A
INNER JOIN HR_EMPLOYEES B ON A.DEPT_ID=B.DEPT_ID
INNER JOIN HR_GRADE C ON B.EMP_NO=C.EMP_NO
GROUP BY B.EMP_NO
ORDER BY B.EMP_NO ASC
📜노트
을 기반으로 기준 점수, 평가 등급, 성과금(연봉 기준)을 조회할 수 있다.
SCORE는 상.하반기로 나누어져 있기때문에 AVG함수를 통해 평균으로 나타낸다.
- CASE WHEN
CASE WHEN 조건1 THEN '반환값' WHEN 조건2 THEN '반환값' . . ELSE '반환값' END
조건문이며
IF문
과 달리 조건을 여러개 걸 수 있다는 차이가 있다.