HackerRank | Top Earners

jeonghens·2025년 5월 31일

SQL: HackerRank

목록 보기
28/49

HackerRank Top Earners


문제

Employee 테이블에서 최대 총 수입과 그 수입을 가지는 직원의 수를 공백으로 구분하여 출력하는 문제이다.

'직원의 총 수입'은 월급에 근무 개월 수를 곱한 값이며, '최대 총 수입'은 모든 직원의 총 수입 중에서 가장 큰 값이다.


풀이

직원의 총 수입(SALARY * MONTHS) 중 최대값을 구하고, 해당 총 수입을 가진 직원 수를 출력하면 된다.

SELECT MAX(SALARY * MONTHS), COUNT(*)
FROM EMPLOYEE
WHERE SALARY * MONTHS = (
    SELECT MAX(SALARY * MONTHS)
    FROM EMPLOYEE
);

그룹화를 이용한 풀이도 가능한데..

직원의 총 수입(EARNINGS)으로 그룹화한 뒤, EARNINGS의 내림차순으로 정렬하여 가장 큰 EARNINGS와 해당 직원 수를 출력하면 된다.

SELECT SALARY * MONTHS AS EARNINGS, COUNT(*)
FROM EMPLOYEE
GROUP BY EARNINGS
ORDER BY EARNINGS DESC
LIMIT 1;
profile
알고리즘이나 SQL 문제 풀이를 올리고 있습니다. 피드백 환영합니다!

0개의 댓글