选择与 Bigquery 中所选日期范围的最后日期相对应的列的值

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

我有以下查询,我想获取查询的间隔日期的最后一个日期 与该时间间隔内的最后一个日期相对应的累积值 然后是整个时间间隔的 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 的示例:

这是预期的结果:

但这就是我得到的:

sql group-by google-bigquery partition
1个回答
0
投票

最后一个

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'
© www.soinside.com 2019 - 2024. All rights reserved.