2

我想从表 totalSpeeds 中的数据列(速度)中获取第一个四分位数的值。

为此,我尝试创建一个变量(阈值),然后选择小于或等于它的值。

SET threshold = (SELECT 0.25*MAX(speed) FROM totalSpeeds);
SELECT speed FROM totalSpeeds WHERE speed <= ${hiveconf:threshold};

这失败并返回了解析错误。有没有更有效的方法来获得前四分位数速度的上限?或者有没有办法调整上述命令以返回第一四分位数的速度?

提前致谢,

安妮塔

4

1 回答 1

0

hive 中有一个内置的 UDF 用于计算百分位数。利用

从 totalSpeeds 中选择百分比(速度,.25);

UDF的解释:

返回组中列的确切 pth 百分位数。p 必须介于 0 和 1 之间

同样,我们也可以使用 percentile(speed, array(p1, p2)) 提取多个百分位数

于 2013-08-08T05:44:27.710 回答