Verwendung von Oracle SQL zum Extrahieren der neuesten Datenpunkte pro Gruppe basierend auf dem Zeitstempel
Diese Anleitung demonstriert verschiedene Methoden zum Abrufen der neuesten Werte für jede Gruppe in einer Oracle-Datenbank, geordnet nach einem Zeitstempel.
Grundlegende Frage:
Die folgende Abfrage ruft den neuesten Wert für jedes id
zusammen mit dem zugehörigen Datum und der zugehörigen Menge ab:
<code class="language-sql">SELECT id, MAX(date) AS "DATE", MAX(quantity) AS "QUANTITY" FROM qtys GROUP BY id;</code>
Methode 1: Filtern nach einem bestimmten Zeitfenster (z. B. Letzte XX Minuten)
Um die Ergebnisse auf Einträge innerhalb der letzten XX Minuten zu beschränken, fügen Sie eine WHERE
-Klausel ein:
<code class="language-sql">SELECT id, date, quantity FROM qtys WHERE date > (SELECT MAX(date) - INTERVAL 'XX' MINUTE FROM qtys);</code>
Methode 2: Kombinieren von IDs mit Textdaten aus einer anderen Tabelle
Um IDs mit entsprechendem Text aus einer Tabelle namens „idnames“ anzuhängen, verwenden Sie die folgende Abfrage:
<code class="language-sql">SELECT t1.id || '-' || t2.idname AS "ID-IDNAME", MAX(t1.date) AS "DATE", MAX(t1.quantity) AS "QUANTITY" FROM qtys t1 INNER JOIN idnames t2 ON t1.id = t2.id GROUP BY t1.id;</code>
Anschauliche Ergebnisse:
Das erwartete Ausgabeformat ähnelt diesem:
<code>ID-IDNAME DATE QUANTITY ---------- ------------------- ---------- 1-testid1 2010-01-04 11:00 152 2-testid2 2010-01-04 11:00 210 3-testid3 2010-01-04 10:30 214 4-testid4 2010-01-04 10:45 122</code>
Das obige ist der detaillierte Inhalt vonWie rufe ich die neuesten Werte pro Gruppe in Oracle SQL basierend auf der Zeit ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!