我有一个计算加权标准差的问题。这是我使用的公式:
sum([Weight]*(([Variable]-[Mean Score - Variable])^2))
/
SUM([Weight])
但是有一个错误弹出消息“无法混合聚合和非聚合”
我想知道我的配方有什么问题?
由于
答案 0 :(得分:0)
我假设变量和权重是数据集中的显式字段,而[平均分数]是您在Tableau中定义的计算字段。
[平均分数]是一个总计算;变量不是。您可以通过将[平均分数]拖动到Tableau中的任何工具架来检查这一点,并注意它显示在前缀AGG()中。请注意,在这种情况下,您无法选择要应用的聚合形式(SUM,MIN,AVG),因为聚合函数是在该计算中定义的。
您无法直接混合聚合和记录级别计算。对每个单独的数据行评估记录级别计算一次。对每个数据行块评估一次聚合计算。
工作表中使用的维度确定将哪些数据行组合成块(对数据进行分区)。类似于SQL select语句中关键字GROUP BY后面的字段。与SQL一样,引用的其他字段必须以某种方式聚合,例如通过SUM(),MIN(),MAX()或其他调用。 Tableau将这些字段称为度量。
最直接的解决方案是修改[平均分数]的定义,使其成为详细程度(LOD)calc而不是聚合计算。
这将允许您基本上首先单独计算平均分数,然后在记录级别计算中引用该结果。您将必须通过3种不同的方式来确定LOD计算的维度。有关LOD计算的更多信息,请参阅在线帮助。
例如,尝试将[平均分数]替换为{ include : [Mean Score] }