我在 Postgres 数据库中有一个名为 Course
的表:
如何选择具有最新日期的课程名称的行?我的意思是,如果我的一个 ID 有两个相同的课程名称,我应该只显示最新的一个作为下面的结果。
简单地说,我只想显示每个(“ID”,“课程名称”)的最新行。
And what if I have two date columns in table Course
, which are StartDate
& EndDate
and I want to show the same based on EndDate
只有?
原文由 Aan 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 PostgreSQL 中,要 _为一组定义的列获取唯一行_,首选技术通常是
DISTINCT ON
:假设您实际上使用带有空格的那些不幸的大写标识符。
这样,您每
ID
恰好得到一行- 具有最新已知"Course Date"
和第一个"Course Name"
的行(根据排序顺序)日期。您可以删除
NULLS LAST
如果您的列已定义NOT NULL
。要获得每个
("ID", "Course Name")
的唯一行:此相关答案中的详细信息: