在Vertica中将percentile_cont创建为聚合函数

时间:2016-11-25 10:52:32

标签: aggregate-functions vertica

我需要Vertica中的percentile_cont()的聚合函数。但是,此数据库中仅提供其分析功能。

是否可以使用存储过程创建一个?非常感谢任何建议和步骤来构建它。

理想情况下,它应该像Oracle link中所示的聚合百分位数_cont()一样工作。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您想要并且只是内联视图或使用with,您仍然可以使用分析功能。只要分组与您的分区相同,pc_value将始终与该组级别相同(例如,可以安全地分组)。

select g1, g2, pc_value, sum(value) sum_value
from ( 
    select g1, g2, value, PERCENTILE_CONT(.5) WITHIN GROUP(ORDER BY value) 
    OVER (PARTITION BY g1, g2)
) x
group by g1, g2, pc_value

你可以尝试创建一个UDX(虽然由于语言结构它看起来不会像这样,所以你可能会创建一个带有两个参数的函数)......但我真的不认为它'会表现得更好,这不是太难以理解。