我有一张表格,其中包含每天发生的事件数量:
--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
但是我收到错误“分析函数不能是另一个分析函数的参数”。
你知道如何创建这个窗口函数吗?
标量子查询应该可以工作:
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