ROW_NUMBER と RANK はどちらも、SQL 結果セットを並べ替えて番号を付けるために使用される関数です。 ROW_NUMBER は挿入順に連続する整数を行に割り当てますが、RANK は同じ値を持つ行に同じランクを割り当て、重複を避けるために後続の行に番号を付け直します。 ROW_NUMBER は常に連続した整数を返しますが、RANK は行の値に応じて同じまたは異なるランクを返すことができます。 ROW_NUMBER は、挿入順に行に番号を付けるか、特定の基準に基づいて連続するサブセットに番号を付けるために使用され、RANK は行をランク付けするか、同じ値を持つ行の相対位置を決定するために使用されます。
SQL における ROW_NUMBER と RANK の違い
ROW_NUMBER と RANK はどちらも、SQL で結果セットを並べ替えて番号を付けるために使用される関数です。どちらも同様の目的を果たしますが、実装と結果にはいくつかの重要な違いがあります。
実装の違い
結果の違い
使用シナリオ
例
<code class="sql">-- ROW_NUMBER SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNum, * FROM table_name; -- RANK SELECT RANK() OVER (ORDER BY id) AS Rank, * FROM table_name;</code>
結果
id | RowNum | Rank |
---|---|---|
1 | 1 | 1 |
2 | 2 | 1 |
3 | 3 | 3 |
4 | 4 | 2 |
5 | 5 | 4 |
以上がSQLのrownumberとrankの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。