SQL でグループ キーごとに行に連続番号を付ける
SQL では、ROW_NUMBER() 関数を使用してキー グループ内の行に連続番号を付けることができます。この関数は、PARTITION BY 句で定義されたパーティション内の各行に一意の番号を割り当てます。
構文:
SELECT *, ROW_NUMBER() OVER (PARTITION BY key_column ORDER BY order_column) - 1 AS row_number FROM table_name
例:
テーブルについて考えてみましょう提供:
CODE | NAME |
---|---|
A | Apple |
A | Angel |
A | Arizona |
B | Bravo |
C | Charlie |
C | Cat |
D | Dog |
D | Data |
D | Down |
D | Doppler |
CODE グループ内の行に順番に番号を付けるには、次のクエリを使用します:
SELECT CODE, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO, NAME FROM MyTable
これにより、目的の結果が生成されます:
CODE | C_NO | NAME |
---|---|---|
A | 0 | Apple |
A | 1 | Angel |
A | 2 | Arizona |
B | 0 | Bravo |
C | 1 | Charlie |
C | 0 | Cat |
D | 0 | Dog |
D | 1 | Data |
D | 2 | Down |
D | 3 | Doppler |
互換性:
ROW_NUMBER()この機能は次のデータベースでサポートされています:
これは、最も一般的に使用される SQL データベースをカバーします。
以上がSQLでグループごとに行に連続番号を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。