## MySQL分组查询
语法:
分组前进行筛选
select 分组函数、列(要求出现在group by 后面)
from 表
[where 筛选条件]
group by 分组的列表
[order by 子句]
注意:查询的列表必须特殊、要求是分组函数和group by 出现的字段
分组后进行筛选
select 分组函数、列(要求出现在group by 后面)
from 表
group by 分组的列表
[havting 筛选条件]
[order by 子句]
特点:
1、分组查询分为两类
数据源 | 位置 | 关键字 | |
---|---|---|---|
分组前 | 原始表 | group by子句前面 | where |
分组后 | 分组后的结果集 | group by子句后面 | having |
①分组函数做条件肯定放在having子句中
②能用分组前做筛选的优先考虑用分组前筛选
按表达式进行分组
2、group by 支持单个字段分组也支持多个字段分组(多个字段之间用逗号分开没有顺序要求),表达式或者函数用的较少
3、也可以添加排序,放到分组查询最后