ホームページ >データベース >mysql チュートリアル >SQL でキー グループ化を使用して連続行番号付けを実装するにはどうすればよいですか?
SQL のキー グループ化を使用した連続行番号付け
SQL は、特定のキー グループ内の行を順番に列挙する強力な機能を提供します。この機能は、個別のカテゴリまたは属性に基づいてデータを整理する必要がある場合に特に役立ちます。この機能がさまざまな SQL 方言でどのように機能するかを見てみましょう。
さまざまな SQL 方言での実装
次の SQL 方言は、キー付きグループによる連続した行番号付けのソリューションを提供します。
サンプル データと望ましい投影
(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 サイトの他の関連記事を参照してください。