자두의 데브로그

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

코딩테스트/SQL

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

왕자두 2024. 10. 11. 15:35

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제가 어렵다기보다는 어떻게 case-end 구문을 활용할 수 있는지만 알면 풀 수 있는 문제였다.

그와중에 성과금만 출력해야되는데 성과금+연봉 더해서 구했다가 한 번 틀렸다..^^;;

문제에 나온 문장 하나하나 제대로 읽자!!!

 

-- 코드를 작성해주세요
select he.EMP_NO, EMP_NAME, 
(case 
 when average >= 96 then 'S'
 when average >= 90 then 'A'
 when average >= 80 then 'B'
 else 'C'
 end)
as GRADE, 
((case 
 when average >= 96 then 0.2
 when average >= 90 then 0.15
 when average >= 80 then 0.1
 else 0
 end) * SAL)
as BONUS
from HR_EMPLOYEES he
join 
(select EMP_NO, avg(score) as average from HR_GRADE group by EMP_NO) as tmp
on tmp.EMP_NO = he.EMP_NO
order by EMP_NO;