반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/284527
- 소요 시간 : 10분
- 난이도 : LV 2
나의 풀이
접근 방법
1. GROUP BY를 이용해 사원별 상반기, 하반기 점수 합을 구한다.
2. 점수별로 내림차순 정렬 후 LIMIT 1로 제일 높은 사원을 뽑는다.
3. 1~2에서 구한 테이블을 서브쿼리로 사원 정보 테이블과 조인해서 사원의 추가 정보를 구한다.
코드
-- 코드를 작성해주세요
SELECT G.SCORE, G.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAIL
FROM (SELECT EMP_NO, SUM(SCORE) AS SCORE
FROM HR_GRADE
GROUP BY EMP_NO
ORDER BY SCORE DESC
LIMIT 1) G JOIN HR_EMPLOYEES E ON G.EMP_NO = E.EMP_NO
결과 : 정답
정리
코드는 통과가 되었지만
요구사항에는 점수가 높은 사원들이라고 되어 있어 LIMIT 1로 푸는 방법이 정답이 아닐 수도 있다.
동점자가 있을 때 푸는 방법,
이외에 HAVING, GROUP BY로 푸는 방법도 알아봐야겠다.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 서울에서 김서방 찾기 - Java (0) | 2024.11.10 |
---|---|
[프로그래머스] ROOT 아이템 구하기 - MySQL (0) | 2024.11.09 |
[소프티어] 함께하는 효도 - Java (2) | 2024.11.01 |
[소프티어] 금고 털이 - Java (0) | 2024.10.31 |
[프로그래머스] 뒤에 있는 큰 수 찾기 - Java (1) | 2024.10.28 |