group by 前的 order by 无效

1.问题发现

  业务中经常需要用到 分组的功能,但是查询到的每个分组中的数据 需要其中最大的或者最小的

2. 解决问题

  1.order by  再 group by  发现sql 报错

  2.order by 放到 group by 后面发现没有生效

  3.把order by 放到子查询中  主查询中进行group by  发现也没有生效

  4. 子查询中 + limit  10000  可以

  5.查询的字段中   增加  @count :=@count+1  可

3.问题根源

  group by 与order by 相似 都是要进行一遍自动排序的 ,所以group  by 后面可有 desc 和asc  默认是asc

    上述3方法中,sql 自动优化把order by 去掉了  多以没有生效

  上述4 方法中,因为不知道需要多少数据 所以也是不合理的limit

  

posted @ 2022-04-20 17:59  超超小仙女  阅读(336)  评论(0编辑  收藏  举报