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: