ホームページ >データベース >mysql チュートリアル >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でキーグループごとに連続した行番号を割り当てる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。