В PostgreSQL, за получаване на уникални редове за определен набор от колони , предпочитаната техника обикновено е DISTINCT ON
:
SELECT DISTINCT ON ("ID") *
FROM "Course"
ORDER BY "ID", "Course Date" DESC NULLS LAST, "Course Name";
Получавате точно един ред за ID по този начин - този с най-новата известна "Course Date" и първото "Course Name" (според реда на сортиране) при равенство на датата.
Можете да премахнете NULLS LAST ако вашата колона е дефинирана NOT NULL .
За да получите уникални редове за ("ID", "Course Name") :
SELECT DISTINCT ON ("ID", "Course Name") *
FROM "Course"
ORDER BY "ID", "Course Name", "Course Date" DESC NULLS LAST;
Подробности в този свързан отговор: