Heim >Datenbank >MySQL-Tutorial >Wie kann ich SQLs „ROW_NUMBER() OVER (PARTITION BY ...)' in MS Access replizieren?

Wie kann ich SQLs „ROW_NUMBER() OVER (PARTITION BY ...)' in MS Access replizieren?

DDD
DDDOriginal
2024-12-17 02:16:25185Durchsuche

How Can I Replicate SQL's

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!

Stellungnahme:
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