做一个查询需要提取每个人去重复之后最新的记录,刚开始用分组排序等方法觉得不行,
distinct可以去掉重复的值,但我还需要拿到这个表的主键id,这样distinct就不支持了。distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。
后来用max函数取最大id就可以实现了,下面是例子:
select *
from mdc_hypertensionvisit
where visitId in
(select max(visitId)
from mdc_hypertensionvisit
where visitdate between to_date('2014-02-01', 'yyyy-MM-dd') and
to_date('2014-10-01', 'yyyy-MM-dd')
group by empiId)
本文介绍了如何使用SQL查询来获取特定时间范围内每个人的最新记录,通过结合distinct和max函数实现去除重复值的同时保留每个ID的最新ID。
2634

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



