有一个像这样的表 T:
ID DateTime asha
AF35 15-01-17 af
AF35 14-01-17 la
AF35 13-01-17 fi
DF57 15-01-17 sk
DF57 14-01-17 sj
DG36 15-01-17 be
DG36 14-01-17 dh
最简单的是什么mysql
查询每个唯一的ID
只有第一行返回,按最新 DateTime
排序?
我的预期结果是这样的:
ID DateTime asha
AF35 15-01-17 af
DF57 15-01-17 sk
DG36 15-01-17 be
<小时/>
我试过SELECT * FROM T GROUP BY ID ORDER BY DateTime
但是,mysql 由于未将其他列添加到子句中而返回错误。如果我添加它们,我仍然会得到重复的 ID 结果。
最佳答案
我最喜欢的编写此查询的方法是使用不存在子句:
select *
from T as t1
where not exists (
select 1
from T as t2
where t2.ID = t1.ID
and t2.DateTime > t1.DateTime
)
关于mysql - 为每个不同的列值选择第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586387/