Heim > Datenbank > MySQL-Tutorial > Wie füge ich Zeilen hinzu und nummeriere sie in SQL basierend auf einer Zählung?

Wie füge ich Zeilen hinzu und nummeriere sie in SQL basierend auf einer Zählung?

Patricia Arquette
Freigeben: 2025-01-06 14:15:41
Original
535 Leute haben es durchsucht

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

Anhängen von Zeilen und Nummerieren von Ergebnissen in SQL

Wie kann ich eine Ergebnismenge erweitern, um mehrere Zeilen für jede Zeile mit einer Anzahl größer als einzuschließen? 1, während Sie sie fortlaufend nummerieren? Betrachten Sie beispielsweise die folgende Tabelle mit Werten und Zählungen:

Value Count
foo 1
bar 3
baz 2

Unsere gewünschte Ausgabe wäre:

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

Um diese datenbankübergreifende Kompatibilität zu erreichen, sollten Sie die Verwendung einer „Zahlen“ in Betracht ziehen. Tabelle:

SELECT value, count, number
FROM table
JOIN Numbers
ON table.count >= Numbers.number
Nach dem Login kopieren

Diese Lösung generiert eine Folge von Zahlen bis zur maximalen Anzahl in der Tabelle. Indem wir die Originaltabelle mit der Zahlentabelle verbinden, wiederholen wir effektiv Zeilen und weisen sequentielle Indizes zu. Hier ist ein Beispiel mit 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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie füge ich Zeilen hinzu und nummeriere sie in SQL basierend auf einer Zählung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage