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: