order by与group by与时间同时存在问题

来源:互联网 发布:淘宝的聚划算怎么抢 编辑:程序博客网 时间:2024/05/22 12:45

我们经常会遇到需要排序且需要去重的业务需求,但是去重时没有办法group by掉date,于是我尝试了一下做法:

  • 用时间排序然后用括号套起来,然后在外面group by结果集
 select * fromselect a.name,a.taskId    from tableA a    where  a.end_flag = '1'        and a.end_date is not null       order by a.end_date ascgroup by(name,taskId) 
发现结果跟我想要的不一样,时间排序经过去重后被打乱了,于是我想是不是可以先去重再排序,但是如果排序就需要时间,是不是可以去重时从不同的时间内只取一个于是便想到了max这个方法:
select a.name,a.taskId,max(a.end_date)    from tableA a    where  a.end_flag = '1'        and a.end_date is not null       group by(name,taskId)        order by end_date asc
原创粉丝点击