mysql分组查询:order by的使用

分组查询,就是根据order by 指定的规则对数据进行分组,开发中会经常遇到像查询每个部门的人数、每个班级的人数这样的问题,就可以用分组查询来解决。 语法: 注意点:

  1. 查询除分组函数外的字段,必须要出现在 group by之后
  2. where字句紧跟group by字句,where操作的是原始表对象,where后面的条件判断要么是操作常量要么是原始表中的字段,where字句中不能使用分组函数,因为where字句的执行顺序高于分组函数;如果对分组的数据需要过滤则使用having关键字,having操作的是分组后的结果集(虚拟表)
  3. 注意where筛选器和having筛选器的使用区别: where过滤器操作的是原始表数据,一般来说,分组之前的过滤放在where子句中;分组之后的过滤放在having子句中,但是如果having过滤条件操作的是原始表的字段,也可以放在where中,且效率更高。
关键字 使用场景 数据源 位置 where 分组前筛选 原始表 group by 之前 having 分组后筛选 分组后的结果集 group by 之后
经验分享 程序员 微信小程序 职场和发展