分 组 函 数
分 组 函 数是作用于一组数据,并对一组数据返回一个值
1.组函数类型:AVG 平均数,COUNT 计数,MAX 最大值,MIN 最小值,SUM 求和
例如:
SELECT AVG(sno), MAX(sno),
MIN(sno), SUM(sno)
FROM student
例如COUNT(计数)函数
SELECT COUNT(*)
FROM score
WHERE class = 95033;
同时COUNT返回不为空的记录总数。
2.组函数中使用NVL函数,NVL函数使分组函数无法忽略空值
例如:
SELECT AVG(NVL (class, 0))
FROM student;
那么不使用nvl就可以忽略空值
例如
SELECT AVG (class)
FROM student;
3.COUNT(DISTINCT)返回expr非空且不重复的记录总数
例如:SELECT COUNT(DISTINCT class)
FROM score;
4.GROUP BY 子句语法
使用GROUP BY子句将表中的数据分成若干组,GROUP BY子句中包含多个列
SELECT class, AVG(sno)
FROM student
GROUP BY class ;
5. 非法使用组函数
不能在 WHERE 子句中使用组函数;可以在 HAVING 子句中使用组函数。
select sno, AVG(class)
from score
where class>95031
GROUP BY sno
Having avg(class)>95032
6. 嵌套组函数
例如
SELECT MAX(AVG(class))
FROM score
GROUP BY sno;