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

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

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

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

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

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

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

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

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

发布了40 篇原创文章 · 获赞 2 · 访问量 3388

猜你喜欢

转载自blog.csdn.net/BEYONDmonster/article/details/101672889