(一)组函数
avg:平均函数
max:最大值函数
min:最小值函数
sum:求和函数
stddev:标准差函数
count():计数函数
count(expr) 返回expr不为空的记录总数
NVL函数使分组函数无法忽略空值
COUNT(DISTINCT expr)返回expr非空且不重复的记录总数
(二) group by
1、对单个列分组
-- 求出employees表中各部门的平均工资
2、对多个列分组
-- 求出employees表中各部门、各工种的平均工资
- 在SELECT 列表中所有未包含在组函数中的列都应该包含 在 GROUP BY 子句中
- 不能在 WHERE 子句中使用组函数
- 可以在 HAVING 子句中使用组函数
(三)having:过滤分组
使用 HAVING 过滤分组:
1. 行已经被分组。
2. 使用了组函数。
3. 满足HAVING 子句中条件的分组将被显示
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
-- 求出各部门中平均工资大于6000的部门
(四)嵌套组函数
-- 求出各部门中平均工资的最大值
(五)总结
- 使用组函数:avg(),sum(),max(),min(),count()
- 在查询中使用 GROUP BY 子句。
- 在查询中使用 HAVING 子句。