首页 > 解决方案 > 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. 在上表中,此过滤器应根据这些条件检索行:

结果表

决赛桌看起来像这样:

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

我怎么可能做到这一点?

标签: tableau-api

解决方案


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

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 不支持连接中的 OR 条件。)

  1. 使用以下条件创建一个自满外连接 在此处输入图像描述

  2. 创建一个名为“过滤器”的计算,如下所示 在此处输入图像描述

  3. 应用数据源过滤器以仅保留 'FILTER' = True 在此处输入图像描述

  4. 从右侧连接中隐藏字段,您将获得所需的输出。 在此处输入图像描述


推荐阅读