我在画面中有两个数据源(A和B) . 关系是1:n . 表A(主表),列ID(主键),字段1,字段2 ....表B列ID(不是PK),字段X,字段Y.
我想使用表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 INNER JOIN(从表B中选择DISTINCT ID)字段X IN(从Tableau动态选择)和字段Y IN(从Tableau动态选择)B ON A.ID = B.ID
这样的事可能吗?
谢谢!!
1 回答
还有第三种选择,根据表格的大小,可以很好 . 使用Tableau数据混合 . 使用Id字段在2个表(数据 - >编辑关系)之间创建链接 .
现在将您想要的信息从表A拖到工作表,然后将字段X和字段Y拖到过滤器 . 瞧 .
如果表太大(特别是表B),您可能需要事先加入 . 但是这可能会导致重复的条目问题(如果B中A中的每个条目都有多个对应关系) . 左连接更可取(并且没有过滤器)