Tech for good

[Stratascratch/SQL] Fifth Highest Salary Without TOP or LIMIT 본문

IT/Data Science

[Stratascratch/SQL] Fifth Highest Salary Without TOP or LIMIT

Diana Kang 2025. 2. 27. 10:59

select salary
from (
	select 
    	salary,
        row_number() over (order by salary desc) as rnk
    from worker) cte
where rnk = 5;

윈도우 함수

  • ROW_NUMBER()
    • 결과 집합의 파티션 내 각 행에 순차적인 정수를 할당하는 순위 함수(윈도우 함수)
      • 행의 번호는 각 파티션에 대해 1번부터 할당한다.
      • 정렬의 중복 값이 있어도 서로 다른 정수를 할당한다.
# 예시
SELECT first_name, 
       last_name, 
       city,
       ROW_NUMBER() OVER (
                  PARTITION BY city
                  ORDER BY first_name
       ) row_num
 FROM sales.customers
ORDER BY city;

(+참고: https://developjuns.tistory.com/42)