In PostgreSQL, per ottenere righe univoche per un insieme definito di colonne , la tecnica preferibile è generalmente DISTINCT ON
:
SELECT DISTINCT ON ("ID") *
FROM "Course"
ORDER BY "ID", "Course Date" DESC NULLS LAST, "Course Name";
Ottieni esattamente una riga per ID
in questo modo - quello con l'ultimo "Course Date"
noto e il primo "Course Name"
(secondo ordinamento) in caso di parità nella data.
Puoi rilasciare NULLS LAST
se la tua colonna è definita NOT NULL
.
Per ottenere righe univoche per ("ID", "Course Name")
:
SELECT DISTINCT ON ("ID", "Course Name") *
FROM "Course"
ORDER BY "ID", "Course Name", "Course Date" DESC NULLS LAST;
Dettagli in questa risposta correlata: