mysq数据库查询之分组查询

一、什么是分组查询

分组查询:将查询结果按照指定字段进行分组

二、分组查询的基本语法

select 查询字段 from 表名 [where 条件] group by 分组字段名 [having 条件表达式]

三、实际操作

分组查询形式一: 分组查询

代码演示


查询结果

 

 


分组查询形式二: 聚合函数+分组查询

代码演示


查询结果


分组查询形式三: 分组条件+分组查询

代码演示

 


查询结果

 


分组查询形式四: 分组查询+排序

代码演示

 


查询结果

 


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

代码演示

 


查询结果

 


四、having与where的区别

having : 先分组,再把不符合条件的数据过滤掉,效率较低。(意思就是,having是上来直接处理全部数据,然后一步步执行其它的条件)但是使用范围广,聚合函数需要having过滤。

where : 先把不符合条件的数据过滤掉,再分组;效率较高。(where就是不管其它的,上来先把不符合条件的过滤掉,在执行其它的条件,处理的数据开始就变少了)

总结: 聚合函数的时候必须用having过滤,但在没有聚合函数的时候where的执行效率要高于having的执行效率

posted @ 2023-11-17 16:50  露予欢  阅读(145)  评论(0)    收藏  举报