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

如何在Tibco Spotfire中计算过去30天唯一user_id的滚动累计?

滚动30天月活跃用户数计算方案

问题原因

你之前使用的表达式UniqueCount([user_id]) OVER (Intersect(AllPrevious([Date]), LastPeriods(30, [Date])))之所以和日活跃用户数结果一致,是因为UniqueCount在窗口函数中默认仅对当前行对应的单日数据做去重统计,没有真正覆盖整个30天窗口内的所有用户。

正确实现方式

可以通过自定义表达式直接实现,以下是针对不同场景的写法(以SAP BusinessObjects Web Intelligence语法为例):

1. 基于自然日的滚动30天统计(适配缺失日期场景)

如果需要统计当前日期及过去29天的所有唯一用户(自然日维度),使用以下表达式作为计算列:

UniqueCount([user_id] WHERE [Date] >= RelativeDate([Date]; -29) AND [Date] <= [Date])

2. 基于数据中最近30个日期点的统计

如果数据集日期连续,或只需统计数据存在的最近30个日期的用户,可使用LastPeriods简化筛选:

UniqueCount([user_id] IN LastPeriods(30, [Date]))

注意事项

  • 若数据集存在日期缺失(比如某几天无登录数据),RelativeDate的方式更贴合“过去30自然日”的业务定义;LastPeriods会取数据中最近的30条日期记录,可能不符合自然日要求。
  • 将上述计算列添加到交叉表中,与日活跃用户数列并列即可得到滚动月活跃用户数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 13:10:08