본문 바로가기

코딩일기

SQL 코드카타 157 - Top Earners

https://www.hackerrank.com/challenges/earnings-of-employees/problem?isFullScreen=true

 

Top Earners | HackerRank

Find the maximum amount of money earned by any employee, as well as the number of top earners (people who have earned this amount).

www.hackerrank.com

 

Column Type
employee_id Integer
name string
months Integer 
salary Integer

 

Employee 테이블:

  • employee_id : 테이블의 고유 키
  • name : 직원의 이름
  • months : 근속기간
  • salary : 급여

직원의 총 수입은 월급 * 근무한 개월 수로 정의되며, 최대 총 수입은 Employee 테이블에서 모든 직원 중 최대 총 수입을 의미합니다. 모든 직원의 최대 총 수입과 최대 총 수입을 가진 직원 수를 찾는 쿼리를 작성하세요. 그런 다음 이 값을 공백으로 구분된 두 개의 정수로 출력하세요.

 

select max(months * salary)
from Employee

 

총 수입의 최대값을 구해준다.

 

select count(months * salary)
from Employee
where months * salary =
(select max(months * salary)
from Employee)

 

위의 쿼리를 조건으로 해서 총수입이 최대 총수입과 같은 직원의 수를 구한다.

 

select
    months * salary,
    count(months * salary)
from Employee
where
months * salary =
(select max(months * salary)
from Employee)
group by months * salary

 

그룹화 해서 최대 총수입을 함께 출력해주면 완료!