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;