Tableau api 在Tableau中最多获得2个日期

Tableau api 在Tableau中最多获得2个日期,tableau-api,Tableau Api,我的要求是获取报告中可用的第二个最长日期,并在此基础上过滤数据集 我试过这样的方法: datediff('day',dt,max(dt))=1 { FIXED : MAX(IF dt != max_dt THEN dt END) } 提到这个 有什么帮助吗?您需要Tableau 9.0来完成此操作。基本上是因为您在Tableau上进行的任何计算都取决于您在工作表上的详细程度(您在其中输入的尺寸)。所以datediff('day',

我的要求是获取报告中可用的
第二个最长日期
,并在此基础上过滤数据集

我试过这样的方法:

datediff('day',dt,max(dt))=1
{ FIXED : MAX(IF dt != max_dt
                 THEN dt
              END)
}
提到这个


有什么帮助吗?

您需要Tableau 9.0来完成此操作。基本上是因为您在Tableau上进行的任何计算都取决于您在工作表上的详细程度(您在其中输入的尺寸)。所以datediff('day',dt,max(dt))=1不起作用。首先,因为您将聚合字段(max(dt))与非聚合字段(dt)混合。其次,因为聚合取决于工作字段中的维度

但是Tableau 9.0有一个新的很棒的特性,叫做细节级别计算。它允许您按照所选的详细程度执行计算,而不取决于图纸上的尺寸。在对工作表进行任何计算之前(在上下文过滤器之后)也会计算该值

现在来看看答案。首先,我将计算出最大值(dt)。我们称之为max_dt

{ FIXED : MAX(dt) }
这将计算所有数据库中dt的最大值

现在要获得第二个最大值,您可以这样做:

datediff('day',dt,max(dt))=1
{ FIXED : MAX(IF dt != max_dt
                 THEN dt
              END)
}
这将计算dt的最大值,忽略那些等于max_dt的值(即真正的max(dt))。因此,第二个最大值


看看那些LOD计算。它们刚刚发布,如果视图有
date
dimension,我现在对它们有很多乐趣

最简单的方法是创建一个计算的
Last()=1


然后过滤掉计算结果为
TRUE

的记录本文提供了几个使用LOD表达式的详细示例。示例10类似于您的案例,使用MIN查找第二早的日期,而不是使用MAX查找第二晚的日期。此外,FIXED:是LOD表达式的默认范围。因此,在本例中,不需要显式键入单词FIXED和冒号。如果你这样做了也没什么坏处。不过,支架是必需的。