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

SQL でキー グループ化を使用して連続行番号付けを実装するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-22 19:57:16
オリジナル
856 人が閲覧しました

How to Implement Sequential Row Numbering with Key Grouping in SQL?

SQL のキー グループ化を使用した連続行番号付け

SQL は、特定のキー グループ内の行を順番に列挙する強力な機能を提供します。この機能は、個別のカテゴリまたは属性に基づいてデータを整理する必要がある場合に特に役立ちます。この機能がさまざまな SQL 方言でどのように機能するかを見てみましょう。

さまざまな SQL 方言での実装

次の SQL 方言は、キー付きグループによる連続した行番号付けのソリューションを提供します。

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

サンプル データと望ましい投影

(CODE, NAME) タプルを含む次のサンプル テーブルを考えてみましょう。

CODE NAME    
---- ----
A    Apple
A    Angel
A    Arizona
B    Bravo
C    Charlie
C    Cat
D    Dog
D    Doppler
D    Data
D    Down
ログイン後にコピー

望ましいグループ化属性として CODE を使用した投影は次のようになります。例:

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
ログイン後にコピー

連続行番号付けを実現する SQL クエリ

キー グループごとにこの連続行番号付けを実現するには、次の SQL クエリを利用できます。

SELECT
    CODE,
    ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 As C_NO,
    NAME
FROM
    MyTable
ログイン後にコピー

このクエリは CODE 列に基づいてテーブルをパーティション化し、各パーティション内のレコードを NAME で並べ替えます。列を作成し、結果の行番号から 1 を減算して、各キー グループに対して 0 から始まる必要な連続番号を取得します。

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

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