Heim >Datenbank >MySQL-Tutorial >Wie kann ich die letzte Zeile für jeden eindeutigen Bezeichner in PostgreSQL effizient abrufen?
PostgreSQL: Extrahieren der letzten Zeile für jeden eindeutigen Bezeichner
In PostgreSQL kann es vorkommen, dass Sie die Informationen aus dem extrahieren müssen letzte Zeile, die jedem eindeutigen Bezeichner innerhalb eines Datensatzes zugeordnet ist. Berücksichtigen Sie die folgenden Daten:
ID-Datum another_info<br> 1 2014-02-01 kjkj<br> 1 2014-03-11 ajskj<br> 1 2014-05-13 kgfd<br> 2 2014-02-01 SADA<br> 3 2014-02 -01 sfdg<br> 3 2014-06-12 fdsA<br>
Um die letzte Informationszeile für jede eindeutige ID im Datensatz abzurufen, können Sie den effizienten Distinct-On-Operator von Postgres verwenden:
select distinct on (id) id, date, another_info from the_table order by id, date desc;
Diese Abfrage gibt Folgendes zurück Ausgabe:
ID-Datum another_info<br> 1 2014-05-13 kgfd<br> 2 2014-02-01 SADA<br> 3 2014-06-12 fdsA<br>
Wenn Sie es vorziehen Für eine datenbankübergreifende Lösung, die möglicherweise geringfügige Leistungseinbußen mit sich bringt, können Sie ein Fenster verwenden Funktion:
select id, date, another_info from ( select id, date, another_info, row_number() over (partition by id order by date desc) as rn from the_table ) t where rn = 1 order by id;
In den meisten Fällen ist die Lösung mit einer Fensterfunktion schneller als die Verwendung einer Unterabfrage.
Das obige ist der detaillierte Inhalt vonWie kann ich die letzte Zeile für jeden eindeutigen Bezeichner in PostgreSQL effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!