You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LookML中创建支持筛选的三年期资金平均值Measure?

LookML 三年时间窗口资金平均值 Measure 实现方案

原代码问题分析

  • 日期逻辑错误:CURRENT_DATE() -3是对日期做减3天操作,而你的year字段是年份数值(如2022),两者类型不匹配,导致判断逻辑完全失效。
  • 未适配筛选器需求:硬编码的时间范围无法支持用户自定义选择1975-2023之间任意三年的窗口。

正确实现方式

方案1:基于筛选器选定年份范围计算平均值

如果用户通过Looker探索界面的筛选器,直接选择具体的三年年份(比如2020、2021、2022),不需要在Measure里额外写时间判断,直接计算筛选后的数据平均值即可:

measure: three_year_avg_funding {
  type: average
  label: "3 year avg. funding"
  sql: ${funding} ;;
  value_format_name: usd
}

使用时仅需给year维度添加筛选条件,选择连续三年即可得到你期望的结果。

方案2:动态计算滚动三年窗口平均值

如果需要自动计算每个年份对应的「当前年份+前两年」的滚动平均值(比如选2022年时,自动包含2020-2022的数据),可以用SQL窗口函数实现:

measure: rolling_three_year_avg_funding {
  type: average
  label: "Rolling 3 Year Avg. Funding"
  sql: 
    AVG(${funding}) OVER (
      PARTITION BY ${person}
      ORDER BY ${year}
      ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
    ) ;;
  value_format_name: usd
}

这个实现会按person分组、year排序,自动计算每个年份对应的近三年资金平均值,用户可通过筛选年份查看对应窗口的结果。

样本数据验证结果

用方案1筛选year为2020、2021、2022,得到的结果与你期望完全一致:

person3 year avg. funding
Amy24,000
Josh12,000

内容的提问来源于stack exchange,提问作者dalek_fred

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:22:19