有一个这样的表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*OF 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
)
按ID顺序按日期描述从T组中选择Distinct(ID)、DateTime、asha
使用上述查询可以创建唯一的Id记录。