Heim >Datenbank >MySQL-Tutorial >Wie kann ich SQLs „ROW_NUMBER() OVER (PARTITION BY ...)' in MS Access replizieren?
Implementieren von „Zeilennummer über Partition nach“ in MS Access
In MS Access wird die Funktionalität von „Zeilennummer über Partition nach“ erreicht „Funktion erfordert einen alternativen Ansatz. Eine Methode besteht darin, eine ungleiche Selbstverknüpfung für die betreffende Tabelle durchzuführen.
Beispiel:
Betrachten Sie die folgende Tabelle, [MyData]:
Ino | TYPE | DOC |
---|---|---|
1 | 1800xxc1 | 3a |
2 | 1810xxc2 | 3b |
3 | 1700xxc3 | 3c |
4 | 1700xxc4 | 3a |
5 | 1800xxc5 | 3a |
6 | 1800xxc6 | 3a |
7 | 1800xxc7 | 3b |
Um in diesem Fall die Funktion „Zeilennummer über Partition nach“ nachzuahmen, können wir Folgendes verwenden Abfrage:
SELECT t1.DOC, t1.TYPE, COUNT(*) AS [Ino Seq] FROM MyData AS t1 INNER JOIN MyData AS t2 ON t2.DOC = t1.DOC AND t2.Ino <= t1.Ino GROUP BY t1.DOC, t1.TYPE ORDER BY 1, 3
Diese Abfrage ruft die Sequenznummer für jede Zeile innerhalb jeder durch die Spalte [DOC] definierten Partition ab. Die Ausgabe sieht etwa so aus:
DOC | TYPE | Ino Seq |
---|---|---|
3a | 1800xxc1 | 1 |
3a | 1700xxc4 | 2 |
3a | 1800xxc5 | 3 |
3a | 1800xxc6 | 4 |
3b | 1810xxc2 | 1 |
3b | 1800xxc7 | 2 |
3c | 1700xxc3 | 1 |
Das obige ist der detaillierte Inhalt vonWie kann ich SQLs „ROW_NUMBER() OVER (PARTITION BY ...)' in MS Access replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!