需求:取出每个人员中最后出现时间对应的那条数据
预期查询结果:
方法:
SELECT t1.*
FROM person t1,
(
SELECT person_id_number groupFields, MAX(id) maxId, MAX(appear_time) maxTime
FROM person
GROUP BY person_id_number) t2
WHERE
(t1.person_id_number = t2.groupFields AND t1.id = t2.maxId AND t1.appear_time = t2.maxTime)
ORDER BY t1.appear_time DESC;
正确查询结果:

该SQL查询从person表中提取每个人员ID最后一次出现时的数据,通过GROUPBY和MAX函数确定每个ID的最大id和时间,然后在主查询中匹配这些最大值,以获取最新记录。结果按appear_time降序排列。

被折叠的 条评论
为什么被折叠?



