答案 0 :(得分:4)
为此,您将需要Tableau 9.0。基本上,因为您在Tableau上执行的任何计算都取决于您在工作表上的详细程度(您在其中放置的维度)。所以datediff('day',dt,max(dt))= 1将无效。首先是因为您将聚合字段(max(dt))与非聚合字段(dt)混合在一起。其次,因为聚合取决于工作区中的维度。
但Tableau 9.0有一个新的很棒的功能,称为细节级别计算。它允许您根据所选的细节级别执行计算,而不是取决于工作表上的尺寸。它也是在工作表上的任何计算之前计算的(仅在上下文过滤器之后)。
现在回答。首先,我会弄清楚什么是最大值(dt)。我们称之为max_dt
{ FIXED : MAX(dt) }
这将计算所有数据库中dt的最大值
现在要获得第二个最大值,你可以这样:
{ FIXED : MAX(IF dt != max_dt
THEN dt
END)
}
这将计算dt的最大值,忽略那些等于max_dt的那些(即真实的最大值(dt))。因此,第二个最大
看看那些LOD计算。他们刚刚被释放,我现在和他们一起玩得很开心
答案 1 :(得分:0)
如果视图具有date
尺寸
执行此操作的简便方法是创建计算Last()=1
然后过滤掉评估为TRUE