Tableau报错:IF语句中无法混合聚合与非聚合比较
解决IF语句中聚合与非聚合混合的错误
错误说明
你遇到的错误提示:IF语句中不能混合聚合与非聚合比较,是因为公式里的字段聚合状态不匹配——要么[ORDER_LATE]和[ORDER_QTY]一个是聚合字段(比如用了SUM、MAX)另一个是非聚合,要么视图的维度层级导致计算时出现冲突。
解决方案
方案1:统一为非聚合计算
如果你的需求是逐行判断订单是否迟到并返回对应数量,确保[ORDER_LATE]和[ORDER_QTY]都处于非聚合状态,直接使用原公式即可:
IF [ORDER_LATE] = "Y" THEN [ORDER_QTY] END
注意检查视图中是否添加了会强制聚合的维度,若有,可能需要调整维度级别。
方案2:统一为聚合计算
如果需要基于分组后的迟到状态返回聚合后的数量,把两个字段都转为聚合形式,示例如下(根据业务需求替换SUM、MAX为合适的聚合函数):
IF MAX([ORDER_LATE]) = "Y" THEN SUM([ORDER_QTY]) END
内容的提问来源于stack exchange,提问作者Joseph Lariviere
相关产品推荐
相关产品推荐

