V PostgreSQL získáte jedinečné řádky pro definovanou sadu sloupců , preferovaná technika je obecně DISTINCT ON
:
SELECT DISTINCT ON ("ID") *
FROM "Course"
ORDER BY "ID", "Course Date" DESC NULLS LAST, "Course Name";
Získáte přesně jeden řádek podle ID
tímto způsobem - ten s nejnovějším známým "Course Date"
a první "Course Name"
(dle pořadí řazení) v případě remíz na datum.
Můžete vypustit NULLS LAST
pokud je váš sloupec definován NOT NULL
.
Chcete-li získat jedinečné řádky na ("ID", "Course Name")
:
SELECT DISTINCT ON ("ID", "Course Name") *
FROM "Course"
ORDER BY "ID", "Course Name", "Course Date" DESC NULLS LAST;
Podrobnosti v této související odpovědi: