大查询中的累积分布窗口函数

问题描述 投票:0回答:1

我有一张表格,其中包含每天发生的事件数量:

--ref_date--|--num_events

我想创建一个窗口函数,用于评估每天过去事件少于当天的天数的百分比(累积分布函数)。

这是我尝试过的:

SELECT
    ref_date,
    num_events,
    AVG(CASE WHEN num_events < LAG(events, 0) OVER (ORDER BY ref_date ASC) THEN 1 ELSE 0 END)
        OVER (ORDER BY ref_date ASC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_distribution
FROM initial_table

但是我收到错误“分析函数不能是另一个分析函数的参数”。

你知道如何创建这个窗口函数吗?

sql google-bigquery window-functions
1个回答
1
投票

标量子查询应该可以工作:

select ref_date,
    (
    select count(case when t2.num_events < t1.num_events then 1 end) * 1.0 / count(*)
    from T t2
    where t2.ref_date < t1.ref_date
    ) as cd
from T t1
© www.soinside.com 2019 - 2024. All rights reserved.