Heim >Datenbank >MySQL-Tutorial >Wie kann ich SQL-Zeilen basierend auf einer Zählung replizieren und fortlaufende Nummern zuweisen?
Replizieren von Zeilen mit anzahlbasierter Nummerierung in SQL
In SQL kann die Verwaltung von Daten mit unterschiedlichem Vorkommen eine Herausforderung darstellen. Diese Frage untersucht eine Methode zum Wiederholen von Zeilen basierend auf einer angegebenen Anzahl und weist den resultierenden Zeilen numerische Indizes zu.
Datenbankunabhängige Lösung
Verwendung einer Verknüpfungsoperation mit a Mit der Zahlentabelle können wir Zeilen basierend auf ihren Zählwerten auf verschiedenen Datenbankplattformen wie Oracle, SQL Server, MySQL usw. replizieren PostgreSQL.
SELECT value, COUNT, number FROM table JOIN Numbers ON table.COUNT >= Numbers.number
Erklärung
Die Zahlentabelle ist eine statische Tabelle mit aufeinanderfolgenden Zahlen (z. B. 1, 2, 3, ...). Indem wir die Haupttabelle mit der Zahlentabelle unter der Bedingung „ANZAHL >= Zahl“ verknüpfen, replizieren wir Zeilen für Werte, deren Anzahl größer oder gleich den verfügbaren Zahlen in der Zahlentabelle ist.
Beispiel
Betrachten Sie die folgenden Tabellendaten:
value | count |
---|---|
foo | 1 |
bar | 3 |
baz | 2 |
Das Anwenden der Abfrage würde zu Folgendem führen Ausgabe:
value | count | number |
---|---|---|
foo | 1 | 1 |
bar | 3 | 1 |
bar | 3 | 2 |
bar | 3 | 3 |
baz | 2 | 1 |
baz | 2 | 2 |
In diesem Ergebnis wird die Zeile für „bar“ mit einer Zählung von 3 dreimal mit den entsprechenden Indizes 1, 2 und 3 wiederholt, während die Zeile für „foo“ nur einmal erscheint da seine Anzahl 1 ist.
Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Zeilen basierend auf einer Zählung replizieren und fortlaufende Nummern zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!