分组或者聚集函数作用于多行。分组函数忽略分组列或者表达式中包含空值的行(除非使用一般函数NVL、NVL2、COALESCE等)
单行函数可以嵌套或者多层嵌套,分组函数只能嵌套两层。
分组函数包括:AVG, COUNT, MIX, MAX, SUM,VARIANCE, STDDEV等。
分组函数可用于ORDER BY, GROUP BY, HAVING子句中。
COUNT函数
- 语法:COUNT({*|[DISTINCT|ALL] expr})
- COUNT函数只有一个参数,这个参数可以是*,也可以是特定列或表达式。
- COUNT(*)函数调用将空值计算在内。
- expr数据类型可为NUMBER、DATE、CHAR或者VARCHAR2。
- ALL关键字是默认语法的一部分,因此COUNT(ALL expr)与COUNT(expr)是相等的,它计算每个组中expr非空值出现的次数。
SUM函数
- 语法:SUM([DISTINCT|ALL] EXPR)
- SUM函数只有一个数字参数,该函数返回值为数字值,expr数据类型为NUMBER。
AVG函数
- 语法:AVG([DISTINCT|ALL] EXPR)
- AVG函数只有一个数字参数,该函数返回值为数字值,expr数据类型为NUMBER。
MAX和MIN函数
- 语法:MAX([DISTINCT|ALL] EXPR);MIN([DISTINCT|ALL] EXPR)
- MAX及MIN函数作用于NUMBER、DATE、CHAR和VARCHAR2数据类型。
- 当应用于DATE项时,MAX返回最近日期,MIN返回最早日期。
- 当应用于字符串时,MAX返回最后出现的单词,MIN返回第一个出现的单词。
VARIANCE函数(方差)
- 语法:VARIANCE([DISTINCT |ALL] expr);
STDDEV函数(标准差)
- 语法:STDDEV([DISTINCT |ALL] expr);