翻訳ページ
このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。
ROW_NUMBER
現在のパーティション内での行の番号を返します。行には、ウィンドウ定義の ORDER BY 句で定義された順序で(ない場合は任意の順序で)、1 から番号が付けられます。
関連項目:
[SELECT] [RANK] [DENSE_RANK]
構文
SELECT ROW_NUMBER() OVER ([PARTITION BY column] ORDER BY column [ASC|DESC])
FROM <multipartIdentifier>;
引数
PARTITION BY column
省略可能。結果セットをパーティションに分割します。ROW_NUMBER 関数は各パーティションに個別に適用され、パーティションごとに行番号がリセットされます。
ORDER BY column 行番号を割り当てる順序を指定します。意味のある結果を得るには必須です。
戻り値
パーティション内での連続した行番号を表す、1 から始まる整数を返します。
例
リポジトリ内でコントリビューターを順位付けする
-- Rank contributors within a repository
SELECT
login,
contributions,
ROW_NUMBER() OVER (ORDER BY contributions DESC) as contribution_rank
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';
時間の経過に沿って Issue の順番を追跡する
-- Track issue growth over time
SELECT
number,
title,
state,
created_at,
ROW_NUMBER() OVER (ORDER BY created_at) as issue_sequence
FROM github.issues.issues
WHERE owner = 'stackql'
AND repo = 'stackql'
ORDER BY created_at;
ROW_NUMBER を RANK および DENSE_RANK と比較する
-- Compare RANK vs DENSE_RANK vs ROW_NUMBER for contributors
SELECT
login,
contributions,
RANK() OVER (ORDER BY contributions DESC) as rank,
DENSE_RANK() OVER (ORDER BY contributions DESC) as dense_rank,
ROW_NUMBER() OVER (ORDER BY contributions DESC) as row_num
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';
詳細については、https://sqlite.org/windowfunctions.html#built-in_window_functions を参照してください。