Tableau api 按最近的非空值进行聚合

Tableau api 按最近的非空值进行聚合,tableau-api,Tableau Api,我有一个包含以下列的数据集[产品编号、国家编号、日期、安装数量、累计安装数量、最后30天] 我可以毫无问题地应用标准度量来查找这三个维度(产品id、国家id、日期(按月或周聚合))内的安装总数、最大或平均数量。但是,我无法按累积值(过去30天)进行聚合,因为该变量已经是累积变量,我需要返回“最新值”,Tableau在聚合函数中没有内置该选项 如何创建一个计算字段,在聚合数据集中启用一个附加列,该列在维度product\u id、country\u id和date(按月或周聚合)内最近的非空值cu

我有一个包含以下列的数据集[产品编号、国家编号、日期、安装数量、累计安装数量、最后30天]

我可以毫无问题地应用标准度量来查找这三个维度(产品id、国家id、日期(按月或周聚合))内的安装总数、最大或平均数量。但是,我无法按累积值(过去30天)进行聚合,因为该变量已经是累积变量,我需要返回“最新值”,Tableau在聚合函数中没有内置该选项


如何创建一个计算字段,在聚合数据集中启用一个附加列,该列在维度product\u id、country\u id和date(按月或周聚合)内最近的非空值cumulativeInstalls\u last\u 30\u days

在评论中,您注意到您希望30天是动态的,因此要实现这一点,请创建一个参数,将其设置为整数,选择范围,并允许任何整数超过零。我叫它
[天数]

然后创建一个计算字段:

TOTAL(SUM(IIF(DATEDIFF("day", [date], TODAY()) < [Number of Days], [Number of Installs], NULL)))
这只是计算今天和给定行中日期之间的天数差

IIF(DATEDIFF("day", [date], TODAY()) < [Number of Days], [Number of Installs], NULL)
IIF(DATEDIFF(“day”,“date],TODAY())<[Number of Days],[Number of Installs],NULL)
检查差异是否小于您选择的天数。如果是,则此语句等于安装数。如果不是,则为空。因此,如果我们将所有这些值相加,我们只得到最近
[天数]
天内的安装次数

考虑到这一点,我们对行进行求和。TOTAL()只对构成分区的每个数据库行执行该求和

请注意,如果数据库的日期晚于今天(),则需要向该IIF()语句添加另一个条件,以确保不包括这些日期



您还提到,您希望能够按月汇总安装数量。那容易多了。只需将月份([日期])放入仪表板,然后求和([安装次数]),Tableau就会为您完成。

数据中的[安装次数]和[累计安装次数(最后30天)]是否匹配?例如,如果您要将1月1日至1月30日期间的[累计安装次数]相加,您会得到1月30日的[累计安装次数]吗?如果是这样,创建一个计算字段来为您执行聚合可能会更容易。@alaprise,它们确实匹配。“30天”就是一个例子,因为数字可能会改变。此外,我可能需要按月汇总,“累计安装”可能长于或短于30天。此外,变量需要与“今天”相关。我在Tableau论坛中寻找了解决方案,但还没有找到解决方案。
IIF(DATEDIFF("day", [date], TODAY()) < [Number of Days], [Number of Installs], NULL)