我有以下查询,我想获取查询的间隔日期的最后一个日期 与该时间间隔内的最后一个日期相对应的累积值 然后是整个时间间隔的 daily_growth 总和:我无法弄清楚查询出了什么问题。
SELECT
max(date) as last_date,
accumulated_value_last_date,
sum(sum_daily_growth_interval)
FROM (
SELECT
date,
LAST_VALUE(accumulated_value IGNORE NULLS) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS accumulated_value_last_date,
daily_growth AS sum_daily_growth_interval
FROM
`my_table`
WHERE
date BETWEEN '2023-12-18' AND '2023-12-20'
)
group by accumulated_value_last_date;
这是 my_table 的示例:
这是预期的结果:
但这就是我得到的:
最后一个
accumulated_value
可以通过使用any_value
和having max
条件来计算。
SELECT
max(date) as last_date,
any_value(accumulated_value having max date) as last_accumulated_value,
sum(daily_growth) as growth
FROM
`my_table`
WHERE
date BETWEEN '2023-12-18' AND '2023-12-20'