以时间序列呈现累积平均值

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

我试图提出一个时间序列的分数来查看趋势。

分数是从表格中的第一个日期到年 - 月末的所有分数的平均值。

即。 2018年1月=其中日期<2018年2月2018年2月=其中日期<2018年2月

我想将此作为每个月的月度分数(2017年12月,2018年1月)

如果得分不是平均值,我可以使用时间序列中的累积选项,但是在引入平均值(公制)时这不起作用。

我真的在这个问题上摸不着头脑。有关如何构建数据并在Google Datastudio中呈现此内容的任何建议将不胜感激。

我可以访问数据库,我们正在利用Big查询来创建视图。

sql google-bigquery google-data-studio
1个回答
2
投票

avg()应该工作。像这样的东西:

select t.*,
       avg(val) over (partition by format_date('%Y%m', date))
from t;

哎呀,这是当月的平均值。如果你想要平均运行:

select format_date('%Y%m', date) as yyyymm,
       (sum(sum(val)) over (order by min(date)) / 
        sum(count(*)) over (order by min(date))
       ) as running_avg
from t
group by yyyymm
order by yyyymm;
© www.soinside.com 2019 - 2024. All rights reserved.