分组函数:分组函数作用于一组数据,并对一组数据返回一个值。
组函数类型:AVG,COUNT,MAX,MIN,STDDEV,SUM
1.可以对数值型数据使用AVG 和 SUM 函数。
SELECT AVG(salary), MAX(salary),MIN(salary), SUM(salary)FROM employeesWHERE job_id LIKE \'%REP%\';
2.可以对任意数据类型的数据使用 MIN 和 MAX 函数。
SELECT MIN(hire_date), MAX(hire_date)FROM employees;
3.COUNT(*) 返回表中记录总数
SELECT COUNT(*)FROM employeesWHERE department_id = 50;
4.COUNT(expr) 返回 expr
不为空
的记录总数。
SELECT COUNT(commission_pct)FROM employeesWHERE department_id = 80;
5.COUNT(
DISTINC
Texpr) 返回
expr非空且不重复
的记录总数
SELECT COUNT(DISTINCT department_id)FROM employees;
6.组函数忽略空值
SELECT AVG(commission_pct)FROM employees;
7.
NVL函数使分组函数无法忽略空值
。
SELECT AVG(NVL(commission_pct, 0))FROM employees;
8.group by
①
在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中。
②包含在 GROUP BY 子句中的列
不必包含
在SELECT 列表中
③多个列分组
SELECT department_id dept_id, job_id, SUM(salary)FROM employeesGROUP BY department_id, job_id ;
9.Having子句
SELECT department_id, MAX(salary)FROM employeesGROUP BY department_idHAVING MAX(salary)>10000 ;
10.嵌套函数
SELECT MAX(AVG(salary))FROM employeesGROUP BY department_id;
AVG:求平均值COUNT:统计查询结果个数MAX:求最大值MIN:求最小值STDDEV:求标准差SUM:求和