SQL/MySQL - 프로그래머스

[Lv.4] 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 [CASE WHEN]

셈뇽 2024. 8. 23. 00:52

 

문제 해결을 위한 개념 정리

 

 Case when()

 

 

12세 이하인 여자 환자 목록 출력하기[IFNULL, IF, CASE WHEN, COALESCE]

문제 해결을 위한 개념 정리 ✅ IFNULL ⇒  컬럼에 있는 값이 Null이면 대체할 값을 표기하고, Null이 아니면 그대로 값을 출력한다 IFNULL(NAME, “No name”)  ✅NULL을 다른 값으로 반환하는 함수들  

seheehee.tistory.com

 

 

문제 해결 코드

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