반응형
풀이(MySQL)
HR_DEPARTMENT 테이블은 문제 해결을 위해 불필요하다. 따라서 HR_EMPLOYEES, HR_GRADE 두 테이블로 문제를 해결할 수 있다.
핵심은 상반기 하반기의 점수를 합쳐서 내림차순으로 정렬을 하는 것이다. HALF_YEAR야 어찌 되었든, 한 사원 당 YEAR 별 SCORE는 상반기와 하반기 최대 두 개가 존재할 것이므로, EMP_NO만 그룹으로 묶어 SCORE를 집계한다면 한 해의 총 점수를 구할 수 있을 것이다.
따라서 EMP_NO 컬럼을 기준으로 GROUP BY로 묶은 뒤, SUM() 집계 함수로 SCORE의 합을 구하면 문제를 해결할 수 있다.
SELECT
SUM(SCORE) AS SCORE, EMP.EMP_NO, EMP_NAME, POSITION, EMAIL
FROM
HR_EMPLOYEES AS EMP
INNER JOIN
HR_GRADE AS GR
ON
GR.EMP_NO = EMP.EMP_NO
WHERE
YEAR = '2022'
GROUP BY
EMP_NO
ORDER BY
SCORE DESC
LIMIT 1
반응형
'SQL 쿼리 연습 > GROUP BY' 카테고리의 다른 글
[Lv.2 / 프로그래머스 / SQL] 성분으로 구분한 아이스크림 총 주문량 (0) | 2024.11.18 |
---|---|
[Lv.2 / 프로그래머스 / SQL] 노선별 평균 역 사이 거리 조회하기 (0) | 2024.06.24 |
[Lv.2 / 프로그래머스 / SQL] 월별 잡은 물고기 수 구하기 (0) | 2024.04.26 |
[Lv.3 / 프로그래머스 / SQL] 부서별 평균 연봉 조회하기 (0) | 2024.04.21 |
[Lv.2 / 프로그래머스 / SQL] 물고기 종류 별 잡은 수 구하기 (0) | 2024.04.20 |