PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wählen Sie Datensätze basierend auf dem letzten Datum aus

In PostgreSQL, um eindeutige Zeilen für einen definierten Satz von Spalten zu erhalten , ist die bevorzugte Technik im Allgemeinen DISTINCT ON :

SELECT DISTINCT ON ("ID") *
FROM   "Course"
ORDER  BY "ID", "Course Date" DESC NULLS LAST, "Course Name";

Sie erhalten genau eine Zeile pro ID auf diese Weise - die mit dem letzten bekannten "Course Date" und der erste "Course Name" (nach Sortierreihenfolge) bei Gleichstand am Datum.

Sie können NULLS LAST löschen wenn Ihre Spalte definiert ist NOT NULL .

Um eindeutige Zeilen pro ("ID", "Course Name") zu erhalten :

SELECT DISTINCT ON ("ID", "Course Name") *
FROM   "Course"
ORDER  BY "ID", "Course Name", "Course Date" DESC NULLS LAST;

Details in dieser verwandten Antwort: