extrahieren die neuesten Einträge für jede Gruppe in Oracle SQL
Dieses Tutorial zeigt eine gemeinsame Datenbankaufgabe: Abrufen des neuesten Datensatzes für jede Gruppe basierend auf einem Zeitstempel. Wir werden als Beispiel eine Tabelle mit IDs, Zeitstempeln und Mengen verwenden.
Herausforderung:
gegeben eine Tabelle mit ID, Zeitstempel ("Datum") und Mengen ("Quantität") Spalten, wie wählen wir effizient die neueste Menge (und den zugehörigen Zeitstempel) für jede einzigartige ID?
Lösung:
Dies kann mit dem folgenden Ansatz erreicht werden:
Die folgende Oracle SQL -Abfrage implementiert diese Lösung:
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;
die Abfrage erweitern:
Diese grundlegende Abfrage kann angepasst werden, um komplexere Bedürfnisse zu erfüllen:
hinzu, wobei
Klausel zur inneren Abfrage auf eine bestimmte Zeitsperiode einschränken. id
anschließen. Zum Beispiel können Sie sich einer Tabelle mit ID und Namen anschließen, 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, der für verschiedene Datenanalyse- und Manipulationsaufgaben gilt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3