시작하기무료로 시작하기

ROW_NUMBER(), RANK(), DENSE_RANK() 비교하기

순위 윈도 함수 중에서는 ROW_NUMBER()가 가장 흔히 쓰이고, 그다음이 RANK()DENSE_RANK()예요. 이들 순위 함수(NTILE() 포함)는 SQL Server에서 레코드에 순위를 매기는 서로 다른 방법을 제공합니다.

이번 연습에서는 데이터셋에서 사건 유형 3이 얼마나 자주 발생하는지 확인해 보려고 합니다. 사건 수를 내림차순으로 정렬해, 사건 수가 가장 많은 날짜의 행 번호, 랭크, 그리고 덴스 랭크가 1이 되도록 하세요. 따라가기 쉽도록, 사건이 최소 8건 이상인 날짜만 포함하겠습니다.

이 연습은 강의의 일부입니다

SQL Server에서의 시계열 분석

강의 보기

연습 안내

  • 열 별칭에 맞게 각 윈도 함수를 채워 넣으세요. ROW_NUMBER(), RANK(), DENSE_RANK()를 각각 한 번씩 포함해야 합니다.
  • OVER 절에서는 ir.NumberOfIncidents내림차순으로 정렬하도록 지정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

SELECT
	ir.IncidentDate,
	ir.NumberOfIncidents,
    -- Fill in each window function and ordering
    -- Note that all of these are in descending order!
	___() OVER (___ ___ ir.NumberOfIncidents ___) AS rownum,
	___() OVER (___ ___ ir.NumberOfIncidents ___) AS rk,
	___() OVER (___ ___ ir.NumberOfIncidents ___) AS dr
FROM dbo.IncidentRollup ir
WHERE
	ir.IncidentTypeID = 3
	AND ir.NumberOfIncidents >= 8
ORDER BY
	ir.NumberOfIncidents DESC;
코드 편집 및 실행