In PostgreSQL, om unieke rijen te krijgen voor een gedefinieerde set kolommen , is de voorkeurstechniek over het algemeen DISTINCT ON
:
SELECT DISTINCT ON ("ID") *
FROM "Course"
ORDER BY "ID", "Course Date" DESC NULLS LAST, "Course Name";
Je krijgt precies één rij per ID
op deze manier - degene met de laatst bekende "Course Date"
en de eerste "Course Name"
(volgens sorteervolgorde) in geval van gelijkspel op de datum.
Je kunt NULLS LAST
laten vallen als uw kolom is gedefinieerd NOT NULL
.
Om unieke rijen te krijgen per ("ID", "Course Name")
:
SELECT DISTINCT ON ("ID", "Course Name") *
FROM "Course"
ORDER BY "ID", "Course Name", "Course Date" DESC NULLS LAST;
Details in dit gerelateerde antwoord: