解决group by分组默认获取id最小的一条数据

group by 按照名字或者其他属性分组后,如果id是自增情况下,一般返回结果都是取得按照某个属性分好组后,id最小的那条数据,如下

 

 

 数据如上图所示,现在先分组查询一下看看

 

 

 可以看到,返回的果然是每组中id最小的数据

这时,有个这样的业务需求,就是要查询每个用户最新的数据,此时我想的是先按时间降序,然后在分组取第一个于是

 

 

  咦?我是按照时间降序了,为什么查询结果还是这样呢?原因就是上面的group by会返回每组中id最小的数据,于是,接下来可以这样写

 

 

 

 

 重点是在划红框的部分,加上having 1后 可以使group by忽略取id最小的,而是取每组第一个

posted on 2021-02-02 16:21  揽星  阅读(2722)  评论(0编辑  收藏  举报

导航