Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die maximale Datums-ID für jede Kategorie in PostgreSQL ab?

Wie rufe ich die maximale Datums-ID für jede Kategorie in PostgreSQL ab?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 01:58:38423Durchsuche

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

Abrufen der maximalen Datums-ID gruppiert nach Kategorie in PostgreSQL

Bei Datenbankoperationen ist es oft notwendig, Datensätze basierend auf bestimmten Kriterien abzurufen. Eine dieser Aufgaben besteht darin, IDs mit dem maximalen Datum für jede Kategorie in einem bestimmten Datensatz auszuwählen. Dies kann in PostgreSQL mithilfe der DISTINCT ON-Klausel effektiv erreicht werden.

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

Um die IDs mit dem maximalen Datum für jede auszuwählen Kategorie können Sie Folgendes verwenden Abfrage:

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

Erläuterung:

  • DISTINCT ON (Kategorie): Diese Klausel stellt sicher, dass doppelte Kategorien eliminiert werden, was ermöglicht uns, die erste eindeutige Kategorie auszuwählen, die die Sortierkriterien erfüllt.
  • Datum DESC:Diese absteigende Sortierreihenfolge stellt sicher, dass der Datensatz mit dem maximalen Datum für jede Kategorie zuerst abgerufen wird.

Das Ergebnis dieser Abfrage ist:

7
2
6

Beachten Sie, dass DISTINCT ON besonders nützlich ist, wenn mehrere Datensätze mit demselben maximalen Datum vorhanden sind. In solchen Fällen bietet es eine Möglichkeit, den ersten eindeutigen Datensatz für jede Kategorie auszuwählen.

Das obige ist der detaillierte Inhalt vonWie rufe ich die maximale Datums-ID für jede Kategorie in PostgreSQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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