Presto - 插入数组作为函数输入

urd*_*boy 1 sql group-by presto

根据Presto 文档

approx_percentile(x, 百分比) ? array<[same as x]>
返回每个指定百分比处 x 的所有输入值的近似百分位数。百分比数组的每个元素必须介于 0 和 1 之间,并且对于所有输入行,数组必须是常量。


我想amount在 25th、50th、75th 和 95th 百分位数处找到相关值,假设输出是一个数组,但无法弄清楚如何将这些值提供给函数(除了提供一个值)

我尝试了我习惯看到的各种表示法,但我一直返回错误。如何输入多个值以获得数组输出?

APPROX_PERCENTILE(amount, .25, .50, .75, .95)

APPROX_PERCENTILE(amount, (.25, .50, .75, .95))

APPROX_PERCENTILE(amount, {.25, .50, .75, .95})

APPROX_PERCENTILE(amount, [.25, .50, .75, .95])   '<--- I assumed this was the proper way

APPROX_PERCENTILE(amount, <[.25, .50, .75, .95]>)

APPROX_PERCENTILE(amount, <.25, .50, .75, .95>)
Run Code Online (Sandbox Code Playgroud)

urd*_*boy 7

刚刚想通了 - 输入数组作为函数参数的正确方法是:

APPROX_PERCENTILE(amount, ARRAY[0.25, 0.50, 0.75, 0.95])
Run Code Online (Sandbox Code Playgroud)