#分组函数
功能:统计
分类:
sum 求和, avg平均值, max最大值, min最小值, count计算个数
特点:
1,sum.avg一般用于处理数值型
max.min.count可以处理任何类型
2,分组函数都忽略null值,NULL+任何数=NULL
3,可以和distinct搭配实现去重的运算
4,count 函数
一般使用count(*)用作统计行数
5,和分组函数一同查询的字段要求是group by 后的字段
#---1.
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT COUNT(salary) FROM employees;
SELECT SUM(salary) 和,AVG(salary) 平均值,MAX(salary) 最高, MIN(salary) 最低,COUNT(salary) 个数 FROM employees;
#---2,参数支持的类型
SELECT MAX(`last_name`),MIN(`last_name`) FROM employees;
SELECT COUNT(`last_name`) FROM employees;
SELECT COUNT(`commission_pct`) FROM employees;
#---3,是否忽略null值
SELECT SUM(`commission_pct`),AVG(`commission_pct`) FROM employees;
NULL+任何数=NULL
SELECT MAX(`commission_pct`),MIN(`commission_pct`) FROM employees;
#---4,和distinct搭配
SELECT SUM(DISTINCT `salary`),SUM(`salary`) FROM employees;
SELECT COUNT(DISTINCT `salary`),COUNT(`salary`) FROM employees;
#---5,count函数
SELECT COUNT(`salary`) FROM employees;
SELECT COUNT(*) FROM employees; #统计个数
SELECT COUNT(1) FROM employees; #()里面可以增加一个常量值,统计个数
#效率:MYISAM存储引擎下,count(*)的效率最高
#INNODB存储引擎下,count(*)和count(1)的效果差不多,比count(字段)要高一些