聚合与分组

聚合函数的分类:
-COUNT: 统计行数量
-SUM: 获取某个单列的合计值
-AVG: 计算某个列的平均值
-MAX: 计算列的最大值
-MIN: 计算列的最小值

计数规范:
1、ALL:全部,默认,一般都用这个
count(*)统计所有行,包括NULL
select count(region) as'地区总数' from bbc;
2、DISTINCT:去除重复的,而且是非空值
select count(distinct region) from bbc;
3、SUM,AVG
select sum(population)/count(population) from bbc where region = 'Africa';
select avg(population)from bbc where region = 'Africa';
4、MAX
select max(population)as'最大人口'from BBC;

分组:过滤分组数据
标准结构:select 列A,聚合函数(聚合函数规范)from表名 where 过滤条件 GROUP BY 列A;
在where条件过滤后分组(顺序:from where Group By select order By)
分组有效的条件:☆
1、使用了聚合函数的列,
或者
2、该列在Group BY子句中:
多列分组:只有多列都相等时,才分为一组;很容易遗忘;


HAVING子句:
当需要使用聚合函数 来过滤 查询结果集时使用HAVING 子句

HAVING 和 WHERE 的区别:
where先执行,后边不能用聚合函数,
having在分组之后执行,能使用聚合函数

原文地址:https://www.cnblogs.com/chenyuanqiu2008/p/5464001.html