Tableau转QuickSight:FIXED函数等效计算字段迁移问题
Tableau到QuickSight计算字段迁移解决方案
原Tableau公式逻辑是:按sort_center、reporting_date、ship_method_group分组计算每组的WAPE比率,再将每行的actuals_for_wape乘以对应组的比率后求和,最终除以全局actuals_for_wape总和。
你的QuickSight公式问题在于:直接用全局actuals_for_wape总和乘以组比率,不符合原逻辑;且未指定sumOver的聚合上下文参数,导致计算异常。
正确的QuickSight计算公式
sum(actuals_for_wape * ( abs(sumOver(actuals_for_wape, [sort_center, reporting_date, ship_method_group], PRE_AGG) - sumOver(lp_forecast_unbuffered, [sort_center, reporting_date, ship_method_group], PRE_AGG)) / sumOver(actuals_for_wape, [sort_center, reporting_date, ship_method_group], PRE_AGG) )) / sumOver(actuals_for_wape, [], PRE_AGG)
关键说明
PRE_AGG参数:明确sumOver在聚合前按指定维度分组计算总和,匹配Tableau FIXED LOD的分组逻辑。- 内层计算:先得到每组的WAPE比率(绝对值差除以组实际总和),再将每行
actuals_for_wape与对应组比率相乘,求和后得到分子。 - 外层除以全局
actuals_for_wape总和,完成最终计算。
分步优化(可选)
如果公式过长,可拆分两个计算字段:
- 创建
Group_WAPE_Ratio计算字段:
abs(sumOver(actuals_for_wape, [sort_center, reporting_date, ship_method_group], PRE_AGG) - sumOver(lp_forecast_unbuffered, [sort_center, reporting_date, ship_method_group], PRE_AGG)) / sumOver(actuals_for_wape, [sort_center, reporting_date, ship_method_group], PRE_AGG)
- 最终计算字段:
sum(actuals_for_wape * Group_WAPE_Ratio) / sumOver(actuals_for_wape, [], PRE_AGG)
内容的提问来源于stack exchange,提问作者Hamza Drioua
相关产品推荐
相关产品推荐

