Tableau api 如何在tableau中聚合表计算

Tableau api 如何在tableau中聚合表计算,tableau-api,aggregation,rolling-computation,Tableau Api,Aggregation,Rolling Computation,这是我的工作簿 在该工作簿上,我为每个用户计算每个事务之间的时间差。我首先构建的是带此计算的过滤器PUL {Fixed [User Id]: sum( if [Created At]<=[END_DATE] then 1 else 0 end)}>=2 AND {FIXED [User Id]: sum( IF [Created At]<=[END_DATE] AND [Created At] >= [START_DATE] THEN 1 ELSE 0 END)}&g

这是我的工作簿

在该工作簿上,我为每个用户计算每个事务之间的时间差。我首先构建的是带此计算的过滤器PUL

{Fixed [User Id]: sum(
if [Created At]<=[END_DATE] then 1 else 0 end)}>=2
AND
{FIXED [User Id]: sum(
IF [Created At]<=[END_DATE] AND 
[Created At] >= [START_DATE] THEN 1 ELSE 0 END)}>=1
lookup(min(([Created At])),0) >= [START_DATE] and 
lookup(min(([Created At])),0) <= [END_DATE]

但它返回错误
datediff,调用时使用字符串、整数、整数

对于Max和Min,您可以继续操作,就像我为您之前的问题提供了解决方案一样。(对于max,创建秩计算,排序是降序的;对于Min,创建第二个秩计算,排序是升序的

然而,就我对tableau中表格计算的了解而言,tableau不允许对这些表格计算字段进行硬编码,因此您不能-

  • 进一步汇总这些结果
  • 对这些对象执行LOD计算
对于平均值和中位数等的计算,建议您创建硬编码列/字段,该列/字段提供任何订单与该客户先前订单的时差。您可以用自己选择的任何编程语言,如R或python(或其他)来实现这一点

此外,Tableau与R/python的集成是通过
script real
类型的函数实现的,这些函数同样属于
table calculation
类别,并且将应用上述限制

祝你好运

编辑正如Alex Blakemore在另一个问题/答案上所建议的,您可以稍微调整一下窗口功能。假设datediff的计算字段名为
[CF]
,然后使用以下计算创建四个计算字段

window_max([CF])

window_min([CF])

window_avg([CF])

window_median([CF])
并分别命名为
[CF max]
[CF Min]
[CF avg]
[CF Median]

现在编辑表格计算,每四个表格中都有嵌套,如下所示-

  • 单击嵌套计算向下箭头。CF将在那里列出。将其计算更改为
    特定维度
    ,级别为
    最深
    ,并在evrey
    用户id重新启动。截图是

  • 然后再次单击嵌套计算向下箭头。选择CF_max/min/med/avg(视情况而定),并在表格向下的情况下创建表格计算
您将根据需要获得这样的视图


查看我编辑的答案。我想这是你在舞台上能做的最好的了。你可以看看hi anil,我只是想知道,为什么我的CF min有2个min值,有1和2,为什么不像你的截图那样为零?我只是按照你的步骤,根据你的截图进行同样的计算,但当我将其更改为CF min时,这些值就变成了正确的值(0值)
window_max([CF])

window_min([CF])

window_avg([CF])

window_median([CF])