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


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

 

 

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

 

 

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

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

 

 

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

 

 

 

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM