728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/284528
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

| HR_EMPLOYEES | |||||||
| 사번, | 성명, | 부서 ID, | 직책, | 이메일, | 전화번호, | 입사일, | 연봉 |
| EMP_NO | EMP_NAME | DEPT_ID | POSITION | COMP_TEL | HIRE_DATE | SAL | |
| 2017002 | 정호식 | D0001 | 팀장 | hosick_jung@grep.com | 031-8000-1101 | ####### | 65000000 |
| 2018001 | 김민석 | D0001 | 팀원 | minseock_kim@grep.com | 031-8000-1102 | ####### | 60000000 |
| 2019001 | 김솜이 | D0002 | 팀장 | somi_kim@grep.com | 031-8000-1106 | ####### | 60000000 |
| 2020002 | 김연주 | D0002 | 팀원 | yeonjoo_kim@grep.com | 031-8000-1107 | ####### | 53000000 |
| 2020005 | 양성태 | D0003 | 팀원 | sungtae_yang@grep.com | 031-8000-1112 | ####### | 53000000 |
| HR_GRADE | |||
| 사번 | 연도 | 반기 | 평가 점수 |
| EMP_NO | YEAR | HALF_YEAR | SCORE |
| 2017002 | 2022 | 1 | 92 |
| 2017002 | 2022 | 2 | 84 |
| 2018001 | 2022 | 1 | 89 |
| 2018001 | 2022 | 2 | 89 |
| 2019001 | 2022 | 1 | 94 |
| 2019001 | 2022 | 2 | 81 |
| 2020002 | 2022 | 1 | 90 |
| 2020002 | 2022 | 2 | 91 |
| 2020005 | 2022 | 1 | 92 |
| 2020005 | 2022 | 2 | 81 |
풀이
SELECT
A.EMP_NO
,A.EMP_NAME
,(CASE
WHEN AVG(B.SCORE) >= 96 THEN 'S'
WHEN AVG(B.SCORE) >= 90 THEN 'A'
WHEN AVG(B.SCORE) >= 80 THEN 'B'
ELSE 'C' END ) AS GRADE
,(CASE
WHEN AVG(B.SCORE) >= 96 THEN A.SAL*0.2
WHEN AVG(B.SCORE) >= 90 THEN A.SAL*0.15
WHEN AVG(B.SCORE) >= 80 THEN A.SAL*0.1
ELSE 0 END ) AS BONUS
FROM HR_EMPLOYEES A
JOIN HR_GRADE B ON A.EMP_NO = B.EMP_NO
GROUP BY A.EMP_NO
GRADE와 BONUS 만 조건문으로 걸면 끗
CASE WHEN THEN END ~
728x90
'문제풀이 > SQL' 카테고리의 다른 글
| 물고기 종류 별 잡은 수 구하기 (1) | 2025.07.14 |
|---|---|
| 노선별 평균 역 사이 거리 조회하기 (3) | 2025.07.14 |
| 부서별 평균 연봉 조회하기 (0) | 2025.07.14 |
| 조건에 맞는 사원 정보 조회하기 (0) | 2025.07.14 |
| 특정 형질을 가지는 대장균 찾기 (0) | 2025.07.10 |
댓글