[프로그래머스] 조건에 맞는 사원 정보 조회하기

2026. 5. 15. 11:34·SQL

얻을 수 있는 것이 많은 문제라고 생각한다.

조건에 맞는 사원 정보 조회하기

 

이 문제의 핵심

1. 2022년 상/하반기 점수를 합산

2. 직원별 총점 계산

3. 그중 최고 점수인 직원 조회

 

흐름

1. 1차 그룹화

직원별로 묶어서 상/하반기 점수 합산

 

2. 최고 점수 구하기

MAX(SUM(SCORE))는 바로 사용하지 못 하므로 서브쿼리로 한 번 감싸서 직원별 총점을 먼저 만든 뒤

그중 MAX를 구하는 구조

 

실행 순서

FROM
→ WHERE
→ GROUP BY
→ HAVING
→ SELECT
→ ORDER BY

WHERE = 그룹화 전 필터

HAVING = 그룹화 후 필터

 

 

[최종 답안]

SELECT 
       SUM(G.SCORE) AS SCORE
     , E.EMP_NO
     , E.EMP_NAME
     , E.POSITION
     , E.EMAIL
  FROM HR_EMPLOYEES E
  JOIN HR_GRADE G
    ON G.EMP_NO = E.EMP_NO
 WHERE G.YEAR = 2022   
 GROUP BY E.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAIL
HAVING SUM(G.SCORE) = (
    SELECT MAX(SCORE)
    FROM (
        SELECT SUM(SCORE) AS SCORE
        FROM HR_GRADE
        WHERE YEAR = 2022
        GROUP BY EMP_NO
    ) A
);

 

 

[다른 답안]

SELECT 
       SUM(G.SCORE) AS SCORE
     , E.EMP_NO
     , E.EMP_NAME
     , E.POSITION
     , E.EMAIL
FROM HR_EMPLOYEES E
JOIN HR_GRADE G
  ON E.EMP_NO = G.EMP_NO
WHERE G.YEAR = 2022
GROUP BY E.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAIL
ORDER BY SCORE DESC
LIMIT 1;

내가 처음 적은 답안과 비교해 봤을 때 훨씬 간단하다.

문제에서 구하는 것은 결국 점수가 가장 높은 사람이기 때문에 MAX(...)를 통해 복잡하게 구할 필요 없이

점수 기준 내림차순 정렬 후 최상위 행만 구하는 방식이다.

둘 다 좋은 답안이라 생각하지만 나는 어떤 SQL 문제가 나와도 첫 번째 방법을 선택할 것이다.

두 번째 답안은 데이터에 따라 최고 점수를 가진 사람이 한 명이 아니라면 우리가 원하는 결과값이

아닐 수 있게 된다.

이런 리스크를 안고 가는 것 보다 문제에서 요구한 내용이 담백하게 담겨있는 방식을 택하는 것을 선호한다.

 


이 문제는 `GROUP BY`, `SUM`, `HAVING`, `서브쿼리`, `MAX` 조합 연습 문제라고 볼 수 있다.

조금만 익숨함에서 멀어지면 까먹어버리는 개념들이므로 주기적으로 환기시켜줄 필요가 있다.

'SQL' 카테고리의 다른 글

SQL CASE문 정리  (0) 2026.05.14
SQLD 공부 2일차  (0) 2025.05.31
SQLD 공부 1일차  (0) 2025.05.29
'SQL' 카테고리의 다른 글
  • SQL CASE문 정리
  • SQLD 공부 2일차
  • SQLD 공부 1일차
JK-LEE98
JK-LEE98
백엔드 개발자
  • JK-LEE98
    JK-LEE98
    JK-LEE98
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 나의 지식 공유 (4)
      • SQL (4)
      • PS (10)
      • BackEnd (32)
        • Java (3)
        • Spring (4)
        • 내일배움캠프 (20)
        • 프로그래머스 데브코스 (5)
      • 건강한 나 되기🍀 (10)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
JK-LEE98
[프로그래머스] 조건에 맞는 사원 정보 조회하기
상단으로

티스토리툴바