Extrahieren der neuesten Einträge für jede Gruppe in Oracle SQL
Dieses Tutorial demonstriert eine häufige Datenbankaufgabe: das Abrufen des neuesten Datensatzes für jede Gruppe basierend auf einem Zeitstempel. Als Beispiel verwenden wir eine Tabelle mit IDs, Zeitstempeln und Mengen.
Herausforderung:
Wie wählen wir bei einer Tabelle mit den Spalten „ID“, „Zeitstempel“ („Datum“) und „Menge“ („Menge“) effizient die neueste Menge (und den zugehörigen Zeitstempel) für jede eindeutige ID aus?
Lösung:
Dies kann mit folgendem Ansatz erreicht werden:
Die folgende Oracle SQL-Abfrage implementiert diese Lösung:
<code class="language-sql">SELECT x.id, x."date", x.quantity FROM ( SELECT id, "date", RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk, quantity FROM qtys ) x WHERE x.rnk = 1;</code>
Erweitern der Abfrage:
Diese grundlegende Abfrage kann an komplexere Anforderungen angepasst werden:
WHERE
-Klausel hinzu, um die Ergebnisse auf einen bestimmten Zeitraum zu beschränken.id
verknüpfen. Sie könnten beispielsweise eine Verbindung zu einer Tabelle mit ID und Namen herstellen, um Namen in die Ausgabe einzubeziehen.Diese Methode bietet eine robuste und effiziente Möglichkeit, die neuesten Werte pro Gruppe basierend auf einem Zeitstempel in Oracle SQL abzurufen, die auf verschiedene Datenanalyse- und Manipulationsaufgaben anwendbar ist.
Das obige ist der detaillierte Inhalt vonWie rufe ich den neuesten Wert für jede Gruppe basierend auf dem Zeitstempel in Oracle SQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!