Tableau-如何检查值是否等于另一行和另一列的值

时间:2018-11-09 14:13:01

标签: tableau

我有下表:

+------------+--------------+---------+---------+---------+
|  Category  |  Subcategory |FruitName|  Date1  |  Date2  |
+------------+--------------+---------+---------+---------+
|     A      |       1      |   Foo   |   2011  |   2017  |
|            |              +---------+---------+---------+
|            |              |Pineapple|   2011  |   2013  |
|            |              +---------+---------+---------+
|            |              |  Apple  |   2017  |   2018  |
|            +--------------+---------+---------+---------+
|            |      2       |  Peach  |   2014  |  2015   |
|            |              +---------+---------+---------+
|            |              |  Orange |   2015  |  2018   |
|            |              +---------+---------+---------+
|            |              |  Banana |   2009  |  2013   |
+------------+--------------+---------+---------+---------+

我想显示水果名称,其中一行中的Date1 =另一行中的Date2,但前提是它们在同一Subcategory中相等。在上表中,此过滤器应根据以下条件检索行:

Table with results

决赛桌如下:

+------------+--------------+---------+---------+---------+
|  Category  |  Subcategory |FruitName|  Date1  |  Date2  |
+------------+--------------+---------+---------+---------+
|     A      |       1      |   Foo   |   2011  |   2017  |
|            |              +---------+---------+---------+
|            |              |  Apple  |   2017  |   2018  |
|            +--------------+---------+---------+---------+
|            |      2       |  Peach  |   2014  |  2015   |
|            |              +---------+---------+---------+
|            |              |  Orange |   2015  |  2018   |
+------------+--------------+---------+---------+---------+

我怎么可能做到这一点?

1 个答案:

答案 0 :(得分:2)

您提供的逻辑与提供的输出不匹配。如果您在输出之后,则逻辑应为:

SELECT f1.* from fruits f1 JOIN fruits f2 
ON f1.Subcategory=f2.Subcategory 
WHERE f1.Date1=f2.Date2 OR f1.Date2 = f2.Date1;

如果您的数据源支持自定义SQL,则可以直接使用上面的查询。如果不是这样,您仍然可以在Tableau中使用完全外部联接和计算出的字段来实现它。(Tableau在Joins中不支持OR条件。)

  1. 使用以下条件创建自完全外部联接 enter image description here

  2. 创建一个名为“ FILTER”的计算,如下所示 enter image description here

  3. 应用数据源过滤器以仅保留'FILTER'= True enter image description here

  4. 隐藏右侧连接中的字段,您将获得所需的输出。 enter image description here