oracle去重取最大值

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

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)

猜你喜欢

转载自710542316.iteye.com/blog/2126495
今日推荐