ホームページ > データベース > mysql チュートリアル > SQLでグループごとに行に連続番号を付けるにはどうすればよいですか?

SQLでグループごとに行に連続番号を付けるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-23 14:23:14
オリジナル
727 人が閲覧しました

How to Number Rows Sequentially by Group in SQL?

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 Server
  • Oracle
  • Postgres
  • Sybase
  • MySQL 8.0
  • MariaDB 10.2
  • SQLite 3.25

これは、最も一般的に使用される SQL データベースをカバーします。

以上がSQLでグループごとに行に連続番号を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート