프로그래머스 문제
https://school.programmers.co.kr/learn/courses/30/lessons/284528#qna
풀이
https://school.programmers.co.kr/questions/72887
-- 풀이 쿼리
SELECT S.EMP_NO
, E.EMP_NAME
, CASE WHEN S.SCORE >= 96 THEN 'S'
WHEN S.SCORE >= 90 THEN 'A'
WHEN S.SCORE >= 80 THEN 'B'
ELSE 'C'
END AS GRADE
, CASE WHEN S.SCORE >= 96 THEN E.SAL*0.2
WHEN S.SCORE >= 90 THEN E.SAL*0.15
WHEN S.SCORE >= 80 THEN E.SAL*0.1
ELSE 0
END AS BONUS
FROM (
SELECT EMP_NO
, AVG(SCORE) AS SCORE
FROM HR_GRADE
GROUP BY EMP_NO
) AS S
LEFT JOIN HR_EMPLOYEES E
ON S.EMP_NO = E.EMP_NO
썩 좋은 문제는 아닌 것 같다. 문제에선 상반기, 하반기로 나뉘어 있는데 관련해서 문제에 아무런 언급이나 조건이 없어서 오해의 소지가 다분한 문제다. 상/하반기의 평균으로 하니 풀렸다.
그 외에 딱히 어렵거나 까다로운 함수를 써야 한다거나... 하는 부분은 없었다.
'코딩테스트 > SQL - 프로그래머스' 카테고리의 다른 글
SQL 고득점 kit(JOIN) - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (2) | 2024.03.14 |
---|---|
SQL 고득점 kit(GROUP BY) - 노선별 평균 역 사이 거리 조회하기 (0) | 2024.03.04 |
SQL 고득점 kit(GROUP BY) - 조건에 맞는 사원 정보 조회하기 (0) | 2024.03.01 |
SQL 고득점 kit(JOIN) - 주문량이 많은 아이스크림들 조회하기 (0) | 2024.02.20 |
SQL 고득점 kit(IS NULL) - 업그레이드 할 수 없는 아이템 구하기 (0) | 2024.02.20 |