【问题标题】:Presto - Insert Array as Function InputPresto - 插入数组作为函数输入
【发布时间】:2020-07-27 18:45:30
【问题描述】:

根据Presto Documentation

approx_percentile(x, percents) → 数组
返回 在每个 x 的所有输入值的近似百分位 指定的百分比。百分比数组的每个元素必须是 介于 0 和 1 之间,并且数组对于所有输入必须是常量 行。


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

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

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>)

【问题讨论】:

    标签: sql group-by presto


    【解决方案1】:

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

    APPROX_PERCENTILE(amount, ARRAY[0.25, 0.50, 0.75, 0.95])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-31
      • 2021-03-13
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      相关资源
      最近更新 更多