I PostgreSQL, for at få unikke rækker til et defineret sæt af kolonner , den foretrukne teknik er generelt DISTINCT ON
:
SELECT DISTINCT ON ("ID") *
FROM "Course"
ORDER BY "ID", "Course Date" DESC NULLS LAST, "Course Name";
Du får nøjagtig én række efter ID
på denne måde - den med den seneste kendte "Course Date"
og den første "Course Name"
(ifølge sorteringsrækkefølge) i tilfælde af uafgjort på datoen.
Du kan droppe NULLS LAST
hvis din kolonne er defineret NOT NULL
.
For at få unikke rækker pr. ("ID", "Course Name")
:
SELECT DISTINCT ON ("ID", "Course Name") *
FROM "Course"
ORDER BY "ID", "Course Name", "Course Date" DESC NULLS LAST;
Detaljer i dette relaterede svar: