In einer Datenbank, die eine Tabelle mit Daten zu Kategorien, Daten und IDs enthält, ist es möglich, die abzurufen ID mit dem aktuellsten Datum für jede Kategorie. Betrachten Sie die folgenden Beispieldaten:
id category date 1 a 2013-01-01 2 b 2013-01-03 3 c 2013-01-02 4 a 2013-01-02 5 b 2013-01-02 6 c 2013-01-03 7 a 2013-01-03 8 b 2013-01-01 9 c 2013-01-01
Um die ID mit dem maximalen Datum für jede Kategorie auszuwählen, stellt PostgreSQL die DISTINCT ON-Klausel bereit. Mit dieser Klausel können Sie Zeilen basierend auf angegebenen Spalten gruppieren und vergleichen und gleichzeitig unterschiedliche Werte auswählen.
SELECT DISTINCT ON (category) id -- , category, date -- any other column (expression) from the same row FROM tbl ORDER BY category, date DESC;
Die Abfrage priorisiert die Sortierung von Zeilen nach aufsteigender Kategoriereihenfolge und absteigender Datumsreihenfolge. Als Ergebnis wird für jede eindeutige Kategorie die letzte Zeile mit dem maximalen Datum zurückgegeben.
id category date 7 a 2013-01-03 2 b 2013-01-03 6 c 2013-01-03
Das obige ist der detaillierte Inhalt vonWie finde ich die maximale Datums-ID für jede Kategorie in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!