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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 21:22:10184ブラウズ

How to Sequentially Number Rows within Groups in SQL?

SQL でキー付きグループごとに行に連続番号を付ける

SQL で特定のキーでグループ化された行に連続番号を付けるタスクは、一般的な要件です。データ処理。これを実現するために、さまざまな SQL データベースは、各キー グループ内で効率的かつ正確な行番号付けを可能にするネイティブ関数と技術を提供しています。

異なるデータベースへの実装

多くの一般的な SQLデータベースは、連続した行番号付けのための組み込み関数または拡張機能を提供します:

  • SQLサーバー: ROW_NUMBER() OVER (PARTITION BY ...)
  • Oracle: ROW_NUMBER() OVER (PARTITION BY ...)
  • Postgres: ROW_NUMBER() OVER (PARTITION BY) ...)
  • Sybase: ROW_NUMBER() OVER (PARTITION BY ...)
  • MySQL 8.0 : ROW_NUMBER() OVER (PARTITIONによる...)
  • MariaDB 10.2 : ROW_NUMBER() OVER (PARTITION BY ...)
  • SQLite 3.25 : ROW_NUMBER() OVER (パーティション分割...)

クエリの例

CODE 列によってグループ化されたタプルを含む次のテーブルの例を考えてみましょう。

To各 CODE グループ内の行に連続番号を付けると、次のクエリが可能になります。使用:

出力

クエリは、各 CODE グループ内で行に連続番号が付けられた次の出力を生成します:

注:

ROW_NUMBER() 関数は、デフォルトで 1 から番号を付け始めます。目的の出力に合わせるために、式 ROW_NUMBER() OVER (PARTITION BY ...) - 1 を使用して、番号付けを 1 ベースから 0 ベースにシフトします。

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

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