我在画面中有两个数据源(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 < / p>
这样的事情可能吗?
谢谢!
答案 0 :(得分:4)
还有第三个选项,根据表格的大小,可以很好。使用Tableau数据混合。使用Id字段在2个表(数据 - &gt;编辑关系)之间创建链接。
现在将您想要的信息从表A拖到工作表,然后将字段X和字段Y拖到过滤器。瞧。
如果表太大(尤其是表B),您可能需要事先加入。但这可能会导致重复的条目问题(如果B中A中的每个条目都有多个对应关系)。左连接更可取(并且没有过滤器)