让决策更智能
新一代智能数据分析平台

聚合字段的高级计算-占比逻辑分析

观小数发表于:2020年05月29日 11:51:11更新于:2020年11月30日 20:43:20

问题描述:

用sum函数聚合后的字段求占比,发现占比的数据有问题:

比如:浙江省的占比应该为60/126=47.62%,但是这里显示是53.19%

image.png

sum函数公式为:sum([销售金额])over(partition by [省份])

源数据为:

image.png


原因分析:

聚合字段的占比逻辑跟普通字段的占比逻辑不一样:

1、聚合后的高级计算-占比(求和)逻辑:

sum([销售金额])over(partition by [省份])的结果(此图为排查问题用,并非制作的卡片):

0015ed088fd88f533342452bbdd04b3

比如浙江省用“sum([销售金额])over(partition by [省份])”后得到的数据是60,每一条对应的浙江省后面都是60,也就是说浙江省的求和实际上是5个60,也就是300,

而江苏省sum后的数据是66,那就是4个66,也就是264,

所以浙江省的占比就是300/564=53.19%,江苏省的占比就是264/564=46.81%,

同第一张截图里的占比数据一样:

0015ed08a3372e6f4cf138f056f2c59


2、聚合后的高级计算-占比(无处理)逻辑:

无处理时系统会默认取最大值。

比如浙江省sum之后的无处理就是60,江苏省就是66,那么占比也为无处理的话,默认分子为各自的数值,分母为两个数值中的最大值66,此时浙江省的占比就是60/66=90.91%,江苏省的占比就是66/66=100%:

image.png

解决方法:

聚合后的字段占比在卡片中的逻辑就是如此,无法更改。

如果要实现正在的占比,比如这个例子,源数据已有[销售金额]这个字段,那么直接将该字段拖入到维度即可:

image.png


如果源数据没有直接可以使用的字段,建议在ETL里处理完后再放到卡片上展示。


    您需要登录后才可以回复