我想自己过滤我的数据源。在SQL中,它只是INNER JOINNING一个表。
例如,
SELECT table1.*
FROM table1 INNER JOIN (SELECT id FROM table1 WHERE variable = ‘X’ AND value = 1) q1 ON table1.id = q1.id
WHERE table1.variable = ‘Y’
正如你所看到的,我想只提出相对于变量='X'和值= 1等于'Y'的变量。 我也可以这样写,
SELECT *
FROM table1
WHERE variable = ‘Y’ AND id IN (SELECT id FROM table1 WHERE variable = ‘X’ AND value = 1)
我使用的是一个长数据文件,这意味着我的主键是' id'和'变量'一起。因此,我希望所有variable = ‘Y’
数据仅在' id'有variable = ‘X’ AND value = 1
。如何在Tableau仪表板中翻译此过程?
关于如何在没有内部加入数据源的情况下做任何建议?我尝试了内部连接方式,但是我的数据非常大,导致处理时间过长,并且所有其他进程都非常慢。
答案 0 :(得分:0)
首先,只需将数据源指向table1,不做任何其他更改。简单明了。
其次,返回工作表,选择数据片中的id字段,然后右键单击以创建一个集合。选择设置对话框窗格的常规选项卡上的所有单选按钮,然后切换到条件选项卡。通过公式max(variable = 'x' and value = 1)
定义集合。将您的内容称为有意义的内容,例如 ids_having_an_X1 。这将创建一组id,其中至少有一个数据行符合您的条件。可以把它想象成一个可以进入SQL IN(...)子句的id列表,如果这有帮助的话
现在,您可以在过滤器架上使用您的设置,仅在查询,计算或其他货架中包含这些ID。
要获得where子句的效果,请将变量放在过滤器架上,只选择值' Y'