在项目中遇到一个业务场景,需要对一个表的数据进行分组,分组后取到这个分组的最新的那条数据做其他操作。
我们在实际操作中,分组后一直取到的值都是之前的那个历史数据,想了很多办法,因为进行了分组所以max函数在这里也没有效果。
后来经过来回的子查询来做出查询最新数的效果,但是我自己也在无意中发现了一个也可以实现的简单的方法,就是不太清楚原理,这个还得自己去研究一下,当然,如果有哪位大哥了解的,麻烦给解答一下就最好了。
好了,说下我发现的简单的方法,其实就是在分组前对原表进行一次排序,你需要的是那列字段就用那列字段来排序,排一个倒叙就可以了,因为这个我试了几次都是跟嵌套子查询得出的结果是一样的,我不知道是巧合还是什么,这个方法我没采用,虽然也实现了,但是不知道其原理还是不敢轻易使用。
其实测试的时候我就发现,他在分组的时候如果是有多条数据他就会按照你查询表中的顺序去取这个值,当你倒排的时候你的那个新数据就在上面,所以也就取到了这个最新的数据。
最后,有懂这个原理的大哥可以发个帖给普及一下知识吗?
mysql数据group by 分组后取某一列值最大的那条数据
最新推荐文章于 2024-05-16 13:23:22 发布