您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

分布函数的用法

逆分布分析函数 PERCENTILE_CONT 和 PERCENTILE_DISC 将一个百分点值作为函数参数使用,并对 WITHIN GROUP 子句中指定的一组数据执行操作或对整个数据集执行操作。

这些函数为每个组返回一个值。对于 PERCENTILE_DISC,结果的数据类型与在 WITHIN GROUP 子句中指定的它的 ORDER BY 项的数据类型相同。对于 PERCENTILE_CONT,结果的数据类型为数值(如果 WITHIN GROUP 子句中的 ORDER BY 项为数值)或双精度(如果 ORDER BY 项为整数或浮点数)。

逆分布分析函数需要 WITHIN GROUP ( ORDER BY ) 子句。例如:

PERCENTILE_CONT ( expression1 ) WITHIN GROUP ( ORDER BY expression2 [ASC | DESC ] )

的值必须是数值数据类型的常量,范围从 0 到 1(包含这两个数)。如果参数为 NULL,将返回“wrong argument for percentile”(百分点的参数错误)错误。如果参数值小于 0 或大于 1,将返回“data value out of range”(数据值超出范围)错误。

ORDER BY 子句(必须存在)指定要执行百分点函数的表达式以及每个组中行的排列顺序。此 ORDER BY 子句只在 WITHIN GROUP 子句中使用,而不是 SELECT 的 ORDER BY。

WITHIN GROUP 子句将查询结果分布到排序数据集中,函数通过此数据集计算结果。

是一种排序规范,必须是涉及列引用的单个表达式。不允许多个表达式,并且在此排序表达式中不允许使用 rank 分析函数、集合函数或子查询。

ASC 或 DESC 参数指定排序顺序,如升序或降序。升序是缺省值。

子查询、HAVING 子句、视图或联合中允许使用逆分布分析函数。可以在使用简单非分析集合函数的任意位置使用逆分布函数。逆分布函数忽略数据集中的空值。