Skip to main content

DENSE_RANK() (SQL)

同じウィンドウ・フレーム内の各行に 1 から始まるランクを割り当てるウィンドウ関数。

構文

DENSE_RANK()

説明

DENSE_RANK() は、各行にランク (整数) を割り当てます。この整数は、(RANK() ウィンドウ関数とは異なり) 常に連続する整数となります。 これらのランクは、ORDER BY 式で指定された値によって決まります。例えば、同じ値を持つすべての行には同じランクが与えられます。ただし、RANK() とは異なり、DENSE_RANK() は複数の行が同じランクを共有していても連続する番号をスキップすることはありません。2 つの行がどちらもランク 1 の場合、割り当てられる次のランクは 2 となります。

DENSE_RANK() では、ウィンドウ関数フィールドに同じ値を含む行が複数ある場合、重複値も許容されます。

以下の例では、各部門内での給与に基づいて、従業員のランクが返されます。

SELECT DENSE_RANK() OVER (PARTITION BY Department ORDER BY Salary) FROM Company.Employee

関連項目

FeedbackOpens in a new tab