Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Funktionalität von ROW_NUMBER() OVER (PARTITION BY) in MS Access simulieren?
Zeilennummerierung in MS Access erreichen
Die Funktion „Zeilennummer über Partitionierung nach“, die häufig in Datenbanken wie SQL Server zu finden ist, ermöglicht dies die Zuweisung sequentieller ganzzahliger Werte zu Zeilen innerhalb einer angegebenen Partition einer Ergebnismenge. Obwohl MS Access diese Funktion nicht nativ unterstützt, ist es möglich, ein ähnliches Ergebnis zu erzielen.
Selbstverknüpfungsmethode
Ein Ansatz zur Emulation von „Zeilennummer über Partition“. „By“ erfolgt in Access durch einen ungleichen Selbst-Join. Betrachten Sie die folgende Tabelle:
Ino | Type | DOC |
---|---|---|
1 | 1800xxc1 | 3a |
2 | 1810xxc2 | 3b |
3 | 1700xxc3 | 3c |
4 | 1700xxc4 | 3a |
5 | 1800xxc5 | 3a |
6 | 1800xxc6 | 3a |
7 | 1800xxc7 | 3b |
Die folgende Abfrage verwendet einen Self-Join, um Zeilennummern innerhalb einer Partition basierend auf dem Feld „DOC“ zu berechnen:
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 gibt die zurück folgendes Ergebnis:
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 die Funktionalität von ROW_NUMBER() OVER (PARTITION BY) in MS Access simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!