【问题标题】:Tableau - How check if a value equals a value from another row and columnTableau - 如何检查一个值是否等于另一行和另一列的值
【发布时间】:2018-11-12 15:50:09
【问题描述】:

我有下表:

+------------+--------------+---------+---------+---------+
|  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


【解决方案1】:

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

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. 从右侧连接中隐藏字段,您将获得所需的输出。

【讨论】:

  • 我会试试你的解决方案。同时,我还通过添加图像来解释我正在寻找的输出来更新我的问题(因为它是正确的)。我可能错误地解释了我在寻找什么。
猜你喜欢
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 2021-03-08
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多