【问题标题】:Connect two data sources together without Join in Tableau在 Tableau 中无需加入即可将两个数据源连接在一起
【发布时间】:2015-01-10 15:35:12
【问题描述】:

我在 tableau 中有两个数据源(A 和 B)。关系为 1:n。表 A(主表),列 ID(主键)、字段 1、字段 2...。具有列 ID(不是 PK)、字段 X、字段 Y 的表 B。

我想使用表 B 按字段 X 和字段 Y 进行过滤,然后在相关的工作表中绘制表 A 中的数据,使用 SQL 中的过滤器将等同于 WHERE A.ID IN (SELECT B.ID FROM TableB B) 表 B 已经被字段 X 和字段 Y 的值过滤。

经过一番研究,我发现了两个不能说服我的选择:

选项 1: 使用两个表之间的公共内连接,然后对表 A 的度量使用 AVG 和 COUNT DISTINCT 等聚合函数以避免重复。

选项 2: 根据从 Tableau 发送的参数对表 A 使用自定义 SQL,并在数据库级别过滤表 A。

最好的选择是在以下结构中的源之间进行连接

SELECT A.* FROM tableA A INNER JOIN (SELECT DISTINCT ID FROM TABLE B WHERE Field X IN (Dynamic selection from Tableau) AND Field Y IN (Dynamic selection from Tableau) ) B ON A.ID = B.ID

这样的事情可能吗?

谢谢!!

【问题讨论】:

    标签: tableau-api


    【解决方案1】:

    还有第三种选择,这取决于您的桌子的大小。使用 Tableau 数据混合。使用 Id 字段在 2 个表(数据 -> 编辑关系)之间创建链接。

    现在将您想要的信息从表 A 拖到工作表,然后将字段 X 和字段 Y 拖到过滤器。瞧。

    如果表太大(尤其是 B 表),您可能需要提前加入。但这可能会导致重复条目问题(如果 B 上的 A 中的每个条目有多个对应关系)。左连接更可取(并且没有过滤器)

    【讨论】:

    • 不幸的是,这对我没有帮助,因为关系 1:n 将复制表 A 中的行
    • 仅在第二种方法中。在数据混合上不会有这个问题
    • 我一直在做检查,它确实如你所说。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多