문제설명
HR_DEPARTMENT, HR_EMPLOYEES, HR_GRADE 테이블을 이용해 사원별 성과금 정보를 조회하려합니다. 평가 점수별 등급과 등급에 따른 성과금 정보가 아래와 같을 때, 사번, 성명, 평가 등급, 성과금을 조회하는 SQL문을 작성해주세요.
평가등급의 컬럼명은 GRADE로, 성과금의 컬럼명은 BONUS로 해주세요.
결과는 사번 기준으로 오름차순 정렬해주세요.
| 기준점수 | 평가등급 | 성과금(연봉 기준) |
| 96 이상 | S | 20% |
| 90 이상 | A | 15% |
| 80 이상 | B | 10% |
| 이외 | C | 0% |
HR_DEPARTMENT 테이블
| DEPT_ID | DEPT_NAME_KR | DEPT_NAME_EN | LOCATION |
| D0001 | 법무팀 | Law Dep | 그렙타워 4층 |
| D0002 | 인사팀 | Human resources | 그렙타워 4층 |
| D0003 | 총무팀 | General Affairs | 그렙타워 4층 |
HR_EMPLOYEES 테이블
| EMP_NO | EMP_NAME | DEPT_ID | POSITION | COMP_TEL | HIRE_DATE | SAL | |
| 2017002 | 정호식 | D0001 | 팀장 | hosick_jung@grep.com | 031-8000-1101 | 2017-03-01 | 65000000 |
| 2018001 | 김민석 | D0001 | 팀원 | minseock_kim@grep.com | 031-8000-1102 | 2018-03-01 | 60000000 |
| 2019001 | 김솜이 | D0002 | 팀장 | somi_kim@grep.com | 031-8000-1106 | 2019-03-01 | 60000000 |
| 2020002 | 김연주 | D0002 | 팀원 | yeonjoo_kim@grep.com | 031-8000-1107 | 2020-03-01 | 53000000 |
| 2020005 | 양성태 | D0003 | 팀원 | sungtae_yang@grep.com | 031-8000-1112 | 2020-03-01 | 53000000 |
HR_GRADE 테이블
| EMP_NO | YEAR | HALF_YEAR | SCORE |
| 2017002 | 2022 | 1 | 92 |
| 2018001 | 2022 | 1 | 89 |
| 2019001 | 2022 | 1 | 94 |
| 2020002 | 2022 | 1 | 90 |
| 2020005 | 2022 | 1 | 92 |
| 2017002 | 2022 | 2 | 84 |
| 2018001 | 2022 | 2 | 89 |
| 2019001 | 2022 | 2 | 81 |
| 2020002 | 2022 | 2 | 91 |
| 2020005 | 2022 | 2 | 81 |
다음과 같이 사원별 성과금 정보를 출력해야 합니다.
| EMP_NO | EMP_NAME | GRADE | BONUS |
| 2017002 | 정호식 | B | 6500000 |
| 2018001 | 김민석 | B | 6000000 |
| 2019001 | 김솜이 | B | 6000000 |
| 2020002 | 김연주 | A | 7950000 |
| 2020005 | 양성태 | B | 5300000 |
코드
SELECT H.EMP_NO, H.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 (H.SAL)*0.2
WHEN AVG(G.SCORE) >= 90 THEN (H.SAL)*0.15
WHEN AVG(G.SCORE) >= 80 THEN (H.SAL)*0.1
ELSE 0 END) AS BONUS
FROM HR_EMPLOYEES H
JOIN HR_GRADE G ON H.EMP_NO = G.EMP_NO
GROUP BY H.EMP_NO
ORDER BY H.EMP_NO
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/284528
'SQL Study > Programmers' 카테고리의 다른 글
| 프로그래머스[Lv.1] 모든 레코드 조회하기 (0) | 2025.11.18 |
|---|---|
| 프로그래머스[Lv.2] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2025.11.18 |
| 프로그래머스[Lv.4] 입양 시각 구하기 (2) (0) | 2025.11.11 |
| 프로그래머스[Lv.2] 입양 시각 구하기 (1) (0) | 2025.11.11 |
| 프로그래머스[Lv.4] 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2025.11.11 |