【发布时间】:2020-11-23 04:51:58
【问题描述】:
这是我的工作簿
在该工作簿上,我为每个用户计算每个事务之间的 timediff。我首先构建的是具有此计算的过滤器 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
这个公式是找出符合条件的用户(在 end_date 参数之前至少进行 2 次交易,并且在 start_date 参数和 end_date 参数之间至少进行 1 次交易),然后我将这个过滤器添加到上下文中以找出用户至上。
我用这个计算过滤了 date_range
lookup(min(([Created At])),0) >= [START_DATE] and
lookup(min(([Created At])),0) <= [END_DATE]
因此它将仅可视化范围内的交易(start_date 作为第一个范围,end_date 作为最后一个范围),并且还会可视化第一个范围之前的最后日期交易(如果有的话)。
之后我进行名为 datediff 的计算
DATEDIFF('day',LOOKUP(MIN([Created At]),-1), MIN([Created At])) 并将其放在标签上,以便计算不同的日期。而且我把日期放在细节中,把日期也放在行中,让它成为ATTR。
我的问题是,如何从这个计算中找出最大值、最小值、中值和平均值
我尝试计算最大值
MAX({FIXED [User Id]:DATEDIFF('day',INT(LOOKUP(MIN([Created At]),-1)), INT(MIN([Created At])))})
但它返回错误datediff being called with string,integer,integer
【问题讨论】:
-
查看我编辑的答案。我认为这是您在画面中可以做的最好的事情。你可以看看this file
标签: tableau-api aggregation rolling-computation