ホームページ >データベース >mysql チュートリアル >SQLでキーグループごとに連続した行番号を割り当てる方法は?

SQLでキーグループごとに連続した行番号を割り当てる方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-20 15:39:11630ブラウズ

How to Assign Sequential Row Numbers by Key Group in SQL?

SQL でのキー グループ別の連続した行番号付け

SQL では、ROW_NUMBER() 関数は結果セット内の行に連続した番号を割り当てます。キー グループごとに連続番号を割り当てるには、PARTITION BY 句を使用して、目的のキーごとにデータをグループ化します。

指定されたテーブルと目的の出力の例を次に示します。

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

このクエリは連続した行番号を割り当てます (C_NO)各キー グループ (CODE) に対して、0 から始まり、各グループ内の NAME の昇順に並べられます。

サポートされるデータベース:

PARTITION BY を使用した ROW_NUMBER() 関数次のデータベースでサポートされています:

  • SQLサーバー
  • Oracle
  • Postgres
  • Sybase
  • MySQL 8.0
  • MariaDB 10.2
  • SQLite 3.25

以上がSQLでキーグループごとに連続した行番号を割り当てる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。