在Tableau中使用sql子查询

时间:2016-02-08 21:29:08

标签: sql subquery tableau calculated-field

我尝试在Tableau中计算一个新字段,类似于SQL中的子查询。但是,当我尝试这样做时,我的数字不匹配。我被困在这一点上,我正试图看看别人做了什么。

要提供参考,下面是我尝试在Tableau中复制的子查询。

 select
 ((sum(n.non_influenced_sales*n.calls)/sum(n.calls))-(sum(n.average_sales*calls)/sum(calls))))/
      (sum(n.non_influenced_sales*n.calls)/sum(n.calls)) as impact
 from (select
 count(d.id) as calls
 ,avg(d.sale) as average_sales
 ,avg(case when non_influenced=1 then d.sale else null end) as non_influenced_sales
 from data d
 group by skill) n 

当我尝试在Tableau中构建相同的计算时,只要我按技能注释掉组,我就能得到相同的结果。但是,当我尝试按技能进行分组时,我尝试匹配该数字并没有起作用。

我最接近的是当我尝试使用include来修复细节表达水平时。 Tableau代码:

(include [skill]:([non_influenced_sales]-[average_sales])/[non_influenced_sales]}

然而,执行此操作或使用fixed不起作用,我无法匹配从SQL获得的数字。

仅供参考,影响是一种综合衡量标准。我在tableau中构建了子查询部分,只需为我需要的计算创建单独的字段。所以举个例子 Tableau中计算的非影响销售额:

avg(if [non_influenced]=1 then [non_influenced_sales] end)   

但是,我不确定这是否重要。

我也尝试过创建自定义sql。我可以使用所有日期正确的卷起版本。但是当我想要进入不同的日期/使用其他过滤器时,事情会变得非常混乱。我正在尝试在日期级别建立关系,但这也没有奏效。

有更简单的方法吗?

0 个答案:

没有答案