第52天知识点:聚合函数(上)
看着这些函数是不是感到既熟悉又陌生。
这就是咱们今天要分享的主角--聚合函数。
聚合函数是很多小伙伴初学FineBI时遇到的一个难点。
大家对于聚合函数常常会有这样的困惑:
接下来,我们将对这几个常见问题一一解答。
聚合函数,顾名思义,就是将数据聚集后合并在一起的函数,其实,也就是咱们常说的汇总函数。
聚合函数是对一组数据先进行汇总,然后再使用汇总后的值进行计算。
但需要注意的是:聚合函数是某一类函数的统称,而不是指具体某一个函数。
聚合函数和我们一般的函数有什么区别呢?
汇总的话,SUM函数就可以直接实现了,为什么还需要通过难理解的聚合函数去实现呢?
我们先给大家看个简单的例子。
现有一张各月的销售完成情况表。
我们需要在组件中展示出季度的销售完成情况。
我们先把日期拖入维度栏,销售额、目标值拖入指标栏。
然后将原始数据表中的完成率直接拖入指标栏中。
结果不对,很明显是将三个月的完成率加总在一起了。
而我们想要的结果应该是60/600,对吧?
所以我们不用原来的数据,我们在组件中添加计算字段,通过销售额/目标值去重新计算完成率,这样应该就没问题了吧:
但得到的结果仍然不对:
销售额60,目标值600,完成率怎么会是30%呢?
这是为什么呢?
因为我们的季度值是从月份分组汇总上来的,如果直接用销售额/目标值,他的计算逻辑其实是:
∑(各月的销售额/各月的目标值)
所以直接用销售额/目标值是按照10%+10%+10%计算的,而不是我们想象中会按照60/600计算输出对应结果。
这和我们直接用原始数据表中的完成率计算是一个逻辑。
所以这里只能通过聚合函数去解决。
我们用聚合函数再来计算一下完成率:
结果如下:
这样的结果是不是就没有问题了。
其实呢,这就是聚合函数与非聚合函数的本质区别。
为了大家更直观的理解,我们用Excel展示一下二者区别,大家注意看上方公式:
这样能理解了吗?
非聚合计算是:先相除再相加,
而聚合计算是:先相加再相除。
了解了两种计算方式的区别之后,我们什么时候用聚合函数呢?
因为聚合函数是受到维度影响的,所以一般需要对明细级数据汇总计算的时候,需要用到聚合函数。比如:
原始数据表是月维度数据,但组件中需要按季度或年维度展示数据;
或者原始数据表是员工级数据,但组件中需要按照部门或者机构级展示数据。
我们以下面这张表为例:
非聚合方式下,二季度也就是合计栏的完成率不对吧,计算的逻辑呢我们前面已经说过了,这里就不再展开了。
所以,这种情况下,我们就可以通过聚合函数SUM_AGG(销售额)/SUM_AGG(目标值)去计算完成率。
明细级的数据结果并未发生变化,但汇总值的结果由先相除再相加变成了先相加再相除,这才是我们想要的最终结果。
对聚合函数有了简单的了解之后,关于聚合函数怎么用以及后面的几个问题,因为篇幅限制,我们将在下一篇文章中分享。
感兴趣的小伙伴可以自己动手试试看~ |