gpt4 book ai didi

amazon-redshift - 您可以在单个 Redshift 查询中同时使用 AVG() 和 PERCENTILE_DISC() 函数吗?

转载 作者:行者123 更新时间:2023-12-01 10:29:07 24 4
gpt4 key购买 nike

我很难将这两个函数组合到一个查询中,例如:

WITH time_values AS (
SELECT
(end_time - start_time) * 1.0 / 3600000000 AS num_hours
FROM table
WHERE
end_time >= 1493596800000000
AND start_time < 1493683200000000
)

SELECT
PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY num_hours) OVER() AS p25,
PERCENTILE_DISC(0.50) WITHIN GROUP (ORDER BY num_hours) OVER() AS p50,
PERCENTILE_DISC(0.80) WITHIN GROUP (ORDER BY num_hours) OVER() AS p80,
PERCENTILE_DISC(0.99) WITHIN GROUP (ORDER BY num_hours) OVER() AS p99,
AVG(num_hours)
FROM time_values;

这将返回错误:列“time_values.num_hours”必须出现在 GROUP BY 子句中或用于聚合函数

最佳答案

AVG() 可以是聚合(需要按某些列分组)和窗口函数(需要 frame 子句)。出现该错误是因为您已经使用了一个窗口函数 PERCENTILE 并且没有用于 AVG 函数的框架子句,尽管它并不明显。要在同一查询中使用 AVG,您需要模拟看起来像这样的子句

AVG(num_hours) OVER ()

关于amazon-redshift - 您可以在单个 Redshift 查询中同时使用 AVG() 和 PERCENTILE_DISC() 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44682256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com