extrahieren die letzte Zeile für jede ID in postgresql
betrachten einen Datensatz mit Spalten mit dem Namen id, Datum und einem anderen_info. Das Ziel ist es, die letzten Informationen (Zeile) für jede eindeutige ID zu extrahieren.
, um dies in Postgresql zu erreichen, werden häufig verwendet:
unterschiedlich auf Operator
postgresql liefern, dass nur eindeutig auf die Operator zurückgibt (S - S Operator. In diesem Fall kann der Operator wie folgt verwendet werden:
select distinct on (id) id, date, another_info from the_table order by id, date desc;
Diese Abfrage stellt sicher, dass nur die letzte Instanz jeder eindeutigen ID zurückgegeben wird, in absteigender Reihenfolge nach Datum bestellt. Mit einer Fensterfunktion können Sie Berechnungen oder Aggregationen auf einer partitionierten Reihe von Zeilen durchführen. In diesem Fall kann die folgende Abfrage verwendet werden:
ID, Datum, other_info aus ( Wählen Sie ID, Datum, other_info, row_number () over (partition nach id order nach Datum des DEM) als RN von the_table ) T wo rn = 1 Bestellung von id; Diese Abfrage verwendet die Funktion row_number (), um jeder Zeile in jeder ID -Partition eine sequentielle Nummer zuzuweisen. Die WHERE -Klausel filtert die Ergebnisse, um nur die Zeilen mit dem höchsten RN -Wert (d. H. Die letzte Zeile für jede ID) zu enthalten.
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