ホームページ >データベース >mysql チュートリアル >SQLで行を追加し、カウントに基づいて連続番号を付けるにはどうすればよいですか?
SQL での行の追加と結果の番号付け
カウントが大きい行ごとに複数の行を含めるように結果セットを拡張するにはどうすればよいですか? 1、連番を付けながら?たとえば、値とカウントを含む次の表を考えてみましょう:
Value | Count |
---|---|
foo | 1 |
bar | 3 |
baz | 2 |
望ましい出力は次のようになります:
Value | Count | Index |
---|---|---|
foo | 1 | 1 |
bar | 3 | 1 |
bar | 3 | 2 |
bar | 3 | 3 |
baz | 2 | 1 |
baz | 2 | 2 |
このデータベース間の互換性を実現するには、「数値」の使用を検討してください。 table:
SELECT value, count, number FROM table JOIN Numbers ON table.count >= Numbers.number
このソリューションは、テーブル内の最大数までの一連の数値を生成します。元のテーブルを Numbers テーブルと結合することで、効果的に行を繰り返し、連続したインデックスを割り当てます。 Microsoft SQL Server を使用した例を次に示します:
WITH Numbers AS ( SELECT ROW_NUMBER() OVER (ORDER BY number) AS number FROM ( SELECT 1 AS number UNION ALL SELECT number + 1 FROM Numbers WHERE number < (MAX(count) OVER ()) ) AS Outer ) SELECT value, count, number FROM table JOIN Numbers ON table.count >= Numbers.number
以上がSQLで行を追加し、カウントに基づいて連続番号を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。