코딩테스트

[26.03.10 코테(MySQL)]-연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기

지니248 2026. 3. 10. 16:49

Lv4. 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/284528

 

내가 작성한 코드

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

-- AVG(SCORE) 사용 이유:
-- HR_GRADE 테이블은 반기별로 데이터가 나뉘어 있으므로 사원별 연간 통합 등급을 매기기 위해 AVG(SAL)를 사용하여 평균 점수를 계산