Heim > Datenbank > MySQL-Tutorial > Wie finde ich die ID mit dem maximalen Datum für jede Kategorie in PostgreSQL?

Wie finde ich die ID mit dem maximalen Datum für jede Kategorie in PostgreSQL?

Linda Hamilton
Freigeben: 2024-12-31 03:03:14
Original
190 Leute haben es durchsucht

How to Find the ID with the Maximum Date for Each Category in PostgreSQL?

ID mit maximalem Datum gruppiert nach Kategorie in PostgreSQL auswählen

Um die ID mit maximalem Datum für jede Kategorie innerhalb einer Tabelle zu ermitteln, bietet PostgreSQL einen geeigneten Ansatz. Betrachten wir die 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 das gewünschte Ergebnis zu erzielen, können wir die DISTINCT ON-Klausel von PostgreSQL verwenden. Mit dieser Klausel können wir eindeutige Zeilen basierend auf einem angegebenen Ausdruck auswählen und die Ergebnisse nach einer anderen Spalte gruppieren. In diesem Fall gruppieren wir die Zeilen nach Kategorie und wählen die eindeutige ID mit dem maximalen Datum innerhalb jeder Gruppe aus.

Hier ist die Abfrage, um dies zu erreichen:

SELECT DISTINCT ON (category)
       id  -- , category, date  -- any other column (expression) from the same row
FROM   tbl
ORDER  BY category, date DESC;
Nach dem Login kopieren

Die DISTINCT ON-Klausel stellt sicher, dass nur das erste Vorkommen jedes eindeutigen Kategoriewerts ausgewählt wird. Die ORDER BY-Klausel sortiert die Ergebnisse zunächst nach Kategorie in aufsteigender Reihenfolge (alphabetische Reihenfolge) und dann nach Datum in absteigender Reihenfolge. Durch diese Reihenfolge wird sichergestellt, dass die Zeile mit dem neuesten Datum für jede Kategorie zuerst angezeigt wird.

Das Ausführen dieser Abfrage führt zu folgendem Ergebnis:

id
7
2
6

Diese IDs (7, 2, 6) repräsentieren die maximalen Daten für die Kategorien a, b bzw. c.

Das obige ist der detaillierte Inhalt vonWie finde ich die ID mit dem maximalen Datum für jede Kategorie in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage