MySQL数据库查询进阶---分组查询

分组数据:group by 子句将表中的数据分红若干组
分组查询的特色:
分组查询中的筛选条件分为两类:web

数据源 位置 关键字
分组前筛选 原始表 group by子句前 where
分组后筛选 分组后的结果集 group by子句后 having
1.分组函数作条件确定是放在having子句中
2.能用分组前筛选的,优先考虑使用分组
3.group by子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开,没有顺序要求)
4.也能够添加排序,排序放在整个分组查询的最后

select 分组函数,列(要求出如今group by的后面) from 表 [where条件] group by 分组的列表 [order by 子句]
查询列表必须特殊,要求是分组韩式和group by后出现的字段svg

举例:
分组查询某字段的平均值:
select avg(某字段1),某字段2 from 表名 group by 某字段2;函数

添加筛选条件的分组查询(分组前):
select avg(某字段1),某字段2 from 表名 where 条件1 group by 某字段2;code

添加筛选条件的分组查询(分组后):
select count(*) ,某字段1 from 表名 group by 某字段1 having 条件;xml

按表达式或函数分组:
select 分组函数1,分组函数2 from 表名 group by 分组函数2;排序

按多个字段进行分组:
select 分组函数 ,字段1,字段2 from 表名 group by 字段1,字段2;it