PostgreSQLでは、定義された列のセットに対して一意の行を取得する 、推奨される手法は通常、 DISTINCT ON
:
SELECT DISTINCT ON ("ID") *
FROM "Course"
ORDER BY "ID", "Course Date" DESC NULLS LAST, "Course Name";
正確に1行 ID
ごと このように-最新の既知の"Course Date"
を持つもの 最初の"Course Name"
(ソート順による)日付が同点の場合。
NULLS LAST
を削除できます 列が定義されている場合NOT NULL
。
("ID", "Course Name")
ごとに一意の行を取得するには :
SELECT DISTINCT ON ("ID", "Course Name") *
FROM "Course"
ORDER BY "ID", "Course Name", "Course Date" DESC NULLS LAST;
この関連する回答の詳細: