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

Wie wähle ich die ID mit dem maximalen Datum für jede Kategorie in PostgreSQL aus?

Barbara Streisand
Freigeben: 2024-12-27 18:28:11
Original
767 Leute haben es durchsucht

How to Select 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 dem maximalen Datum für jede Kategorie in PostgreSQL abzurufen, können wir Verwenden Sie die leistungsstarke DISTINCT ON-Klausel, die eine Erweiterung des Standardbefehls DISTINCT darstellt. Diese Klausel ermöglicht es uns, Daten basierend auf bestimmten Kriterien zu aggregieren und gleichzeitig die Einzigartigkeit einzelner Zeilen zu bewahren.

Berücksichtigen 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
Nach dem Login kopieren

Zur Auswahl der ID mit dem maximalen Datum für jede Zeile Kategorie mit DISTINCT ON die Syntax ist:

SELECT DISTINCT ON (category)
       id
FROM   tbl
ORDER  BY category, date DESC;
Nach dem Login kopieren

Die resultierende Ausgabe wird sein:

id
7
2
6
Nach dem Login kopieren

Diese Abfrage sortiert die Daten zuerst nach Kategorie in aufsteigender Reihenfolge und dann nach Datum in absteigender Reihenfolge. Die DISTINCT ON-Klausel stellt dann sicher, dass für jede einzelne Kategorie nur die Zeile mit dem maximalen Datum angezeigt wird, was zur gewünschten Ausgabe führt.

Wenn die Datumsspalte NULL-Werte zulässt, ist es wichtig, die NULL-Werte einzubeziehen LAST-Klausel, um sicherzustellen, dass NULL-Werte zuletzt sortiert werden. Zum Beispiel:

SELECT DISTINCT ON (category)
       id
FROM   tbl
ORDER  BY category, date DESC NULLS LAST;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie wähle ich die ID mit dem maximalen Datum für jede Kategorie in PostgreSQL aus?. 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