Tableau中使用聚合计算字段创建直方图分箱的问题咨询
含聚合计算字段无法分箱的解决办法
你当前的Median Rate Discount是聚合字段(用到了MEDIAN和SUM),Tableau只有非聚合的连续字段能直接分箱,得拆分计算逻辑:
- 先建非聚合的单条记录折扣字段,命名
Individual Discount:
这个字段是每条数据的折扣值,无聚合,属于连续度量。1 - ([Rate] * [Total Units]) / [Paid Amount] - 再用LOD表达式计算每个客户的中位折扣,命名
Customer Median Discount:
LOD会先按客户分组,再算每组的中位折扣,结果是每个客户对应一个值,属于非聚合的连续字段,现在右键它就能选创建 > 分箱,之后把分箱字段拖到列,客户计数拖到行,就能生成直方图。{FIXED [Customer Name] : MEDIAN([Individual Discount])}
先算MAX(Rate)再做Median Max Rate Discount的潜在问题
如果先按客户取最高Rate再计算折扣,要注意这几个点:
- 业务逻辑是否合理:用MAX(Rate)计算的折扣是“假设客户所有订单都用最高单价时的折扣”,和实际每条订单的真实折扣逻辑不同,得确认这是你要的分析方向。
- 必须用LOD控制计算层级:直接用
MAX([Rate])会是视图级别的全局最高值,得先建Max Rate per Customer字段:
再基于它计算每个客户的中位折扣:{FIXED [Customer Name] : MAX([Rate])}
这样结果才是每个客户独立的数值,能正常分箱。{FIXED [Customer Name] : MEDIAN(1 - ([Max Rate per Customer] * [Total Units]) / [Paid Amount])} - 极端值影响:MAX(Rate)很容易被异常高价数据带偏,会让部分客户的折扣计算失真,生成的直方图可能反映的是极端值的影响,而非真实的客户折扣分布,提前检查Rate字段有没有异常值。
内容的提问来源于stack exchange,提问作者AL0290
相关产品推荐
相关产品推荐

