如何在ifelse聚合中使用sum或sumif?Amazon QuickSight计算字段报错求解
错误原因
QuickSight要求自定义聚合逻辑中所有字段的聚合层级必须统一,你当前的写法混用了行级非聚合字段和聚合计算:{calculated field}是行级非聚合字段,而返回值中的sumIf、{sum_amount_2}属于聚合结果,层级不一致就会触发这个报错。
修正方案
根据你的使用场景二选一即可:
场景1:需要先按行判断逻辑再聚合
把ifelse放到sum聚合函数内部,所有行级判断在聚合前完成:
sum( ifelse( {calculated field} = "Won" AND {field} = "Won", {amount}, {calculated field} = "Not Final", {sum_amount_2}, 1 ) )
适用场景:可视化配置了明细分组维度,需要逐行判断规则后再汇总计算
场景2:当前上下文为纯聚合场景(无明细分组维度)
把判断用的{calculated field}也用聚合函数包裹,统一所有字段的聚合层级:
ifelse( max({calculated field}) = "Won", sumIf({amount}, {field} = "Won"), max({calculated field}) = "Not Final", {sum_amount_2}, 1 )
适用场景:指标卡等不需要明细维度的聚合计算场景,
max可替换为min/firstValue等和你的业务逻辑匹配的聚合函数
额外注意事项
如果你的{sum_amount_2}是自定义计算字段,需要确认它本身是聚合计算的结果,不能是行级字段,否则仍会触发聚合层级不匹配的报错。
内容的提问来源于stack exchange,提问作者GB_J
相关产品推荐
相关产品推荐

