출처 : https://school.programmers.co.kr/learn/courses/30/lessons/284528
문제가 좀 불친절 하다고 느꼈다. 기준 점수는 있는데 기준 점수를 어떻게 구하는지를 안 알려줌. 눈치껏 평균을 내서 풀긴 했는데 처음에는 기준이 가장 높은 점수, 가장 낮은 점수, 평균 중 무엇인지 알려주지 않아 예시를 살펴보는 수 밖에 없었다.
문제 자체는 어렵지는 않았다. 문제에서 세 개의 테이블이 주어지지만, 부서정보 테이블은 이 문제에서는 사용하지 않는다.
간단한 조인과 GROUP BY를 해주면 된다.
SELECT A.EMP_NO, EMP_NAME,
CASE WHEN SCORE >= 96 THEN 'S'
WHEN SCORE >=90 THEN 'A'
WHEN SCORE >= 80 THEN 'B'
ELSE 'C'
END AS GRADE,
CASE WHEN SCORE >= 96 THEN SAL * 0.2
WHEN SCORE >=90 THEN SAL * 0.15
WHEN SCORE >= 80 THEN SAL * 0.1
ELSE 0
END AS BONUS
FROM HR_EMPLOYEES A, (SELECT EMP_NO, AVG(SCORE) AS SCORE FROM HR_GRADE GROUP BY EMP_NO) AS B
WHERE A.EMP_NO = B.EMP_NO
ORDER BY EMP_NO
'알고리즘' 카테고리의 다른 글
[프로그래머스/JAVA] 피보나치 수 (0) | 2024.11.23 |
---|---|
[프로그래머스/JAVA]숫자 카드 나누기 (0) | 2024.11.21 |
[프로그래머스/JAVA] N-Queen (1) | 2024.11.17 |
[SWEA/JAVA] 2805 농작물 수확 (0) | 2024.11.16 |
[SWEA/JAVA] 4522 세상의 모든 팰린드롬 (1) | 2024.11.15 |