做一个查询需要提取每个人去重复之后最新的记录,刚开始用分组排序等方法觉得不行,
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)