Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menambah Baris dan Nomborkannya Secara Berjujukan dalam SQL Berdasarkan Kiraan?

Bagaimana untuk Menambah Baris dan Nomborkannya Secara Berjujukan dalam SQL Berdasarkan Kiraan?

Patricia Arquette
Lepaskan: 2025-01-06 14:15:41
asal
534 orang telah melayarinya

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

Menambahkan Baris dan Hasil Penomboran dalam SQL

Bagaimana saya boleh mengembangkan set hasil untuk memasukkan berbilang baris untuk setiap baris dengan kiraan yang lebih besar daripada 1, sambil menomborkannya secara berurutan? Sebagai contoh, pertimbangkan jadual berikut dengan nilai dan kiraan:

Value Count
foo 1
bar 3
baz 2

Output yang kami kehendaki ialah:

Value Count Index
foo 1 1
bar 3 1
bar 3 2
bar 3 3
baz 2 1
baz 2 2

Untuk mencapai keserasian merentas pangkalan data ini, pertimbangkan untuk menggunakan "Nombor" jadual:

SELECT value, count, number
FROM table
JOIN Numbers
ON table.count >= Numbers.number
Salin selepas log masuk

Penyelesaian ini menjana urutan nombor sehingga kiraan maksimum dalam jadual. Dengan menggabungkan jadual asal dengan jadual Nombor, kami mengulangi baris dengan berkesan dan menetapkan indeks berjujukan. Berikut ialah contoh menggunakan 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
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menambah Baris dan Nomborkannya Secara Berjujukan dalam SQL Berdasarkan Kiraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan