详细级别表达式不能包含 table 计算或 Tableau 中的 attr 函数

level of detail expressions cannot contain table calculations or the attr function in Tableau

我有这个画面工作簿

基本上每个 user_id 的计算天数和每个 user_id 的每个交易都不同

DATEDIFF('day',LOOKUP(MIN([Created At]),-1), MIN([Created At]))

那个pull过滤就是过滤用户的条件(我们可以忽略这个)

和 date_rante 过滤其在参数

上计算的不同日期范围之间的日期

用这个计算

lookup(min(([Created At])),0) >= [START_DATE] and 
lookup(min(([Created At])),0) <= [END_DATE]

所以我想从频率中找出不同日期的最大值,用这个计算

MAX({FIXED [User Id]:DATEDIFF('day',LOOKUP(MIN([Created At]),-1), MIN([Created At]))})

但是它说

level of detail expressions cannot contain table calculations or the attr function

所以我使用了这个解决方案https://kb.tableau.com/articles/howto/finding-the-dimension-member-with-the-highest-measure-value

从那个解决方案,我将我的代码应用到这样的

MAX({FIXED [User Id]:DATEDIFF('day',INT(LOOKUP(MIN([Created At]),-1)), INT(MIN([Created At])))})

但它变成了错误datediff being called with string,integer,integer

基于@Anil 的解决方案,我尝试创建它,我知道为什么结果是这样的

新图片

目前,据我对 tableau 的了解,tableau 不允许计算 LOD 计算或 table 计算的进一步聚合。要查找用户在后续订单中花费 most/max 时间(以天为单位)的交易 - 您可以执行此解决方法..

假设您的 datediff 计算字段被命名为 CF1。创建另一个计算字段让我们说 CF2 使用以下计算

rank_unique([CF1])

编辑:
更改此字段的 table 计算类似于 CF1。在此字段上放置过滤器将为您提供最大(时间差异)的日期,如屏幕截图所示。

table 第一个计算选项(datediff 字段)

table 第二个字段的计算选项 (rank_unique)

我在颜色上添加了第三个字段

(请注意过滤器中没有使用字段只是为了突出显示)