ホームページ >データベース >mysql チュートリアル >SQLで行を追加し、カウントに基づいて連続番号を付けるにはどうすればよいですか?

SQLで行を追加し、カウントに基づいて連続番号を付けるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-06 14:15:41553ブラウズ

How to Append Rows and Sequentially Number Them in SQL Based on a Count?

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 サイトの他の関連記事を参照してください。

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