1.分组函数
1 # 1.介绍:2 用作统计使用,又称为聚合函数或统计函数或组函数 3 # 2.列举:4 sum:求和5 avg:均值6 max:最大值7 min:最小值8 count:计算个数
2.分组函数的简单使用
1 # 1.对工资字段单次使用分组函数2 select sum(salary)from employees;# 对所有员工的月薪求和3 select avg(salary)from employees;# 对所有员工的月薪平均值4 select min(salary)from employees;# 对所有员工中月薪的最小值5 select max(salary)from employees;# 对所有员工中月薪的最大值6 select count(salary)from employees;# 根据员工工资字段非空个数 7 # 2.对工资字段在一行语句中使用多个分组函数8 select sum(salary)as工资和, avg(salary)as工资平均值, max(salary)as工资最大值, min(salary)as工资最小值, count(salary)as工资非空个数from employees;
3.分组函数的使用特点
(1).参数支持类型:
1 (1).sum, avg:一般处理数值型2 (2).max/min, count:数值型与字符型,日期型(日期数字越大就越大)(所有类型)
(2).是否忽略null值:分组函数统计都忽略null值
(3).分组函数可以搭配distinct实现去重功能
select sum(distinct salary) from employees; # 将所有员工工资进行去重后求和
(4).count 函数详解:一般用count(*)统计行数
1 1).count承载一个字段:统计该字段非空个数2 2).count承载一个*:统计总的行数,null也算上3 3).count承载一个数字1:统计总的行数,相当于给表额外添加了一列,然后统计这一列的总行数4 注意:(关于count的效率, MYISAM存储引擎下, count(*)效率最高; INNODB存储引擎下count(*)与count(1)效率差不多,都比count(字段名)效率高)
(5).和分组函数一同查询的字段的限制要求一般是group_by后的字段(后续介绍)