[英]MySQL Select one row per ID according to highest submitted date per ID
我有桌子:
id | date_submitted
1 | 01/01/2017
1 | 01/02/2017
2 | 01/03/2017
2 | 01/04/2017
我正在寻找正确的SQL以选择每一行,每个id
行数限制为date_submitted
的最新值。
因此,SQL应该返回上表:
id | date_submitted
1 | 01/02/2017
2 | 01/04/2017
查询也需要选择该行中的所有内容。
谢谢你的帮助。
您可以在子查询中找到每个id的最大日期,并将其与原始表结合起来,以获取具有所有列的所有行(假设除了id和date_submitted之外还有更多列),如下所示:
select t.*
from your_table t
inner join (
select id, max(date_submitted) date_submitted
from your_table
group by id
) t2 on t.id = t2.id
and t.date_submitted = t2.date_submitted;
请注意,如果存在date_submitted等于该id的最大date_submitted的多行,则此查询将返回ID的多行。 如果您确实只希望每个id包含一行,那么解决方案将有所不同。
如果您只需要ID和最大日期,请使用:
select id, max(date_submitted) date_submitted
from your_table
group by id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.