Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die drei aktuellsten Datensätze pro Benutzergruppe in Access SQL ab?
Effizientes Abrufen der drei neuesten Datensätze pro Benutzergruppe in Access SQL
Bei der Datenbankverwaltung geht es oft darum, bestimmte Teilmengen von Daten abzurufen. In Szenarien wie der Verfolgung von Testergebnissen müssen Sie möglicherweise die drei neuesten Einträge für jeden einzelnen Benutzer extrahieren. Obwohl diese Aufgabe scheinbar einfach ist, erfordert sie eine ausgefeilte SQL-Abfrage, um die Auswahl aktueller Datensätze mit der Gruppierung der Daten nach Benutzer zu kombinieren.
Die folgende SQL-Abfrage bietet eine Lösung:
<code class="language-sql">SELECT PR1.LogInID, PR1.Score, PR1.[Date Taken] FROM Progress AS PR1 WHERE PR1.[Date Taken] IN ( SELECT TOP 3 PR2.[Date Taken] FROM Progress PR2 WHERE PR2.LoginID = PR1.LoginID ORDER BY PR2.[Date Taken] DESC ) ORDER BY LoginID, [Date Taken] DESC;</code>
Abfrageaufschlüsselung:
Diese Abfrage verwendet eine Unterabfrage (innere Abfrage) innerhalb der Hauptabfrage (äußere Abfrage), um das gewünschte Ergebnis zu erzielen.
Unterabfrage: Diese verschachtelte Abfrage identifiziert die drei aktuellsten „Datum der Aufnahme“-Werte für jedes eindeutige LoginID
. Dies geschieht durch:
[Date Taken]
Werte.Progress
-Tabelle (PR2
), um nur Datensätze einzuschließen, die mit dem LoginID
aus der äußeren Abfrage (PR1.LoginID
) übereinstimmen.[Date Taken]
, um sicherzustellen, dass die neuesten Daten Vorrang haben.Hauptabfrage: Die Hauptabfrage filtert dann die Progress
-Tabelle (PR1
) mithilfe des IN
-Operators. Dieser Operator stellt sicher, dass nur Datensätze einbezogen werden, deren [Date Taken]
-Wert im Ergebnissatz der Unterabfrage vorhanden ist (d. h. die drei aktuellsten Daten für diesen Benutzer). Abschließend werden die Ergebnisse zur besseren Lesbarkeit nach LoginID
und dann nach [Date Taken]
(absteigend) sortiert.
Dieser Ansatz ruft effizient die drei neuesten Bewertungen für jeden Benutzer ab und behandelt potenzielle Verknüpfungen im [Date Taken]
-Feld effektiv. Die kombinierte Verwendung von Unterabfragen und dem IN
-Operator bietet eine präzise und leistungsstarke Lösung für diese häufige Datenbankherausforderung.
Das obige ist der detaillierte Inhalt vonWie rufe ich die drei aktuellsten Datensätze pro Benutzergruppe in Access SQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!