分组函数
作用:用作统计使用,又称作聚合函数或组函数
常见分组函数如下:
1. sum()求和
2. avg()平均值
3. min()最小值
4.max()最大值
5.count():计算非空的数据个数
注:
- sum() 和avg()一般只适用于处理数值型的数据;min()、max()和count()适用于数值型、字符型和日期型的数据。
- 以上五种常见的分组函数都忽略null值,即null不参与运算
- 都可以和distinct关键字搭配使用,从而达到去重的目的
/**计算工资不重复的总和**/
SELECT SUM( DISTINCT salary) FROM employees;
/**计算工资的最大值**/
SELECT MAX(salary) FROM employees;
/**计算表中所有行不为null的个数**/
SELECT COUNT(*) FROM employees;
/**相当于在表中增加了一列值为1的数据,统计1的个数即统计表中所有行**/
SELECT COUNT(1) FROM employees;
SELECT COUNT(2) FROM employees;
SELECT COUNT('常量') FROM employees;
使用分组函数的注意事项:
/**此条语句不合法:工资的平均值是所有员工的得到的结果只有一个值;而员工编号是每一位员工都有的,结果是多个因而这两者组成的表示一个不规则的表**/
SELECT AVG(salary),employee_id From employees;
和分组函数一同查询到字段要求是group by后面的字段,其他的都不可以
/**1.查询员工表中员工工资的最大值、最小值、平均值,总和**/
SELECT MAX(salary),MAX(salary),MIN(salary),AVG(salary),SUM(salary) FROM employees;
/**2.要求在题1的基础上平均值保留两位小数**/
SELECT ROUND(AVG(salary),2)ROM employees;
/**3.查询员工表中最大入职时间和最小入职时间的相差天数**/
SELECT DATEDIFF(MAX(hiredate),MIN(hiredate));