此查询正常工作:
select percentile_approx(values, 0.75)
from t1
inner join t2 on (t1.id = t2.id) and t1.id = 123;
但是这个查询会抛出一个错误:
select percentile_approx(values, cast(t2.percent as double ))
from t1
inner join t2 on (t1.id = t2.id) and t1.id = 123;
FAILED:UDFArgumentTypeException第二个参数必须是常量,但是传递了double。
如何使第二个参数(百分位数)动态化(来自不同的表)?
注意:计算量将超过1000次,并且还需要执行group by
;因此,逐个运行1不是一个选项 - 在这种情况下,它将是1,000个不同的Hive查询,它们将永远运行。