分组函数也被称为多行函数,它会根据输入的多行数据返回一个结果。分组函数主要用于执行数据统计或数据汇总操作,并且分组函数只能出现在SELECT语句的选择列表、ORDER BY子句和HAVING子句中。分组函数不能直接在PL/SQL语句中引用,而只能在内嵌SELECT语句中使用。
AVG([ALL|DISTINCT]expr)用于计算平均值。
MAX([ALL|DISTINCT]expr)用于取得列或表达式的最大值。
MIN([ALL|DISTINCT]expr)用于取得列或表达式的最小值。
SUM([ALL|DISTINCT]expr)用于计算列或表达式的总和。
CORR(expr1,expr2)返回成对数值的相对系数。
COUNT(ALL|DISTINCT]expr) 用于返回总计函数。
COVAR_POP(expr1,expr2)返回成对数字的协方差。 其数值使用表达式(sum(expr1*expr2)-sum(expr1)*sum(expr2)/n)/n 。
COVAR_SAMP(expr1,expr2)返回成对数字的协方差。 其数值使用表达式(sum(expr1*expr2)-sum(expr1)*sum(expr2)/n)/(n-1)。
CUME_DIST(expr1,expr2...) WITHIN GROUP(ORDER BY expr1,expr2...)用于返回特定数值在一组行数据中的累积分布比例。
DENSE_RANK(expr1,expr2...) WITHIN GROUP(ORDER BY expr1,expr2...)用于返回特定数据在一组行数据中的等级。
FIRST必须与其他分组函数结合使用。通过使用该函数,可以取得排序等级的第一级,然后使用分组函数汇总该等级的数据。
GROUP_ID()用于区分分组中的重复行。
GROUPING(expr)用于确定分组结果是否用到了特定的表达式,返回值为0,表示用到了该表达式,返回值为1表示未用该表达式。
GROUPING_ID(expr1[,expr2],...)用于返回对应于特定行的GROUPING未向量的值。
LAST必须与其他分组函数结合使用。通过使用该函数,可以取得排序等级的最后一级,然后使用分组函数汇总该等级的数据。
PERCENT_RANK(expr1,expr2...) WITHIN GROUP(ORDER BY expr1,expr2...)返回特定数值在统计级别中所占的比例。
PERCENTILE_CONT(percent_expr) WITHIN GROUP(ORDER BY expr1,expr2...)返回在统计级别中处于某个百分点的特定数值(按照连续分布模型确定)。
PERCENT_DISC(percent_expr) WITHIN GROUP(ORDER BY expr1,expr2...)返回在统计级别中处于某个百分点的特定数值(按照离散分布模型确定)。
RANK(expr1,expr2...) WITHIN GROUP(ORDER BY expr1,expr2...)用于返回特定数值在统计数值中所占用的等级。
STDDEV(ALL|DISTINCT]expr)用于取得标准偏差。其数值是按照方差VARIANCE的平方根取得的。
STDDEV_POP(expr)用于返回统计标准偏差,并返回统计方差的平方根。
STDDEV_SAMP(expr)用于返回采样标准偏差,并返回采样方差的平方根。
VAR_POP(expr)用于返回统计方差,其数值使用公式sum(expr*expr)-(sum(expr)*sum(expr)/count(expr))/count(expr) 。
VAR_SAMP(expr)用于返回采样方差,其数值使用公式sum(expr*expr)-(sum(expr)*sum(expr)/count(expr))/(count(expr)-1)。
VARIANCE(ALL|DISTINCT]expr)用于返回列或表达式的方差。