1. ホーム
  2. sql

[解決済み】SQL RANK()とROW_NUMBER()の比較)

2022-04-02 09:21:20

質問

これらの違いについて混乱しています。 以下のSQLを実行すると、2つの同じ結果セットが得られます。 どなたか違いを説明していただけませんか?

SELECT ID, [Description], RANK()       OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank'      FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle

解決方法は?

ROW_NUMBER : 1から始まる各行の一意な番号を返します。値が重複する行については、番号は任意に割り当てられます。

ランク : ただし、値が重複している行については、同じ順位が割り当てられ、重複する順位ごとに順序にずれが生じます。