mysq数据库查询之分组查询
一、什么是分组查询
分组查询:将查询结果按照指定字段进行分组
二、分组查询的基本语法
select 查询字段 from 表名 [where 条件] group by 分组字段名 [having 条件表达式]
三、实际操作
分组查询形式一: 分组查询
代码演示

查询结果

分组查询形式二: 聚合函数+分组查询
代码演示

查询结果

分组查询形式三: 分组条件+分组查询
代码演示

查询结果
分组查询形式四: 分组查询+排序
代码演示

查询结果

分组查询形式五: 分组查询+分组条件+排序+显示前3
代码演示

查询结果

四、having与where的区别
having : 先分组,再把不符合条件的数据过滤掉,效率较低。(意思就是,having是上来直接处理全部数据,然后一步步执行其它的条件)但是使用范围广,聚合函数需要having过滤。
where : 先把不符合条件的数据过滤掉,再分组;效率较高。(where就是不管其它的,上来先把不符合条件的过滤掉,在执行其它的条件,处理的数据开始就变少了)
总结: 有聚合函数的时候必须用having过滤,但在没有聚合函数的时候where的执行效率要高于having的执行效率

浙公网安备 33010602011771号