第53天知识点:聚合函数(下)
上一篇我们介绍了什么是聚合函数,聚合函数与一般计算函数有什么区别以及聚合函数在什么场景中使用。
今天这篇文章就接着上一篇内容继续解答后面几个问题:
有的小伙伴在输入聚合函数后会有疑问,我也是输入的聚合函数,为什么出来的结果还是不对?
一看,原来输入的聚合函数是这样的:
上面的写法其实和直接输入:销售额/目标值,效果是一样的。
它们的计算逻辑都是:先相除再相加,所以结果肯定也是不对的。
那到底该如何正确的书写聚合函数呢?
大家记住一点:对称性。
什么意思呢?
就是运算符号前后都需要嵌套聚合函数。
实在理不清,教你一个简单的方法:先按照普通的计算方式输入公式,再给每个字段嵌套上聚合函数即可。
比如,先输入:销售额/目标值,然后再给销售额和目标值分别套上一个聚合函数:SUM_AGG(销售额)/SUM_AGG(目标值)
这样就不会出现输入不规范的情况啦。
有时候,按照上面的方式输入函数,却提示:聚合函数不能嵌套聚合函数。
但是把聚合函数去掉了之后吧,又提示:无法将聚合参数和非聚合参数混合使用。
搞得都不知道到底应该怎么写了。
首先,咱得明白一点:
【完成率-聚合函数结果】这个字段,是通过聚合函数计算出来的结果,所以它其实本质上已经是个聚合结果了。
而【完成率目标】是原始数据表中的一个普通字段,是个非聚合结果。
那为什么加不加聚合函数都报错呢?
本质上还是因为没有遵循对称性的原则。
什么意思呢?
如果该字段已经是聚合函数计算出来的结果,那么不用嵌套聚合函数,直接输入字段即可,如果该字段是普通字段,那么该字段仍需嵌套聚合函数使用。
所以正确的写法应该是:
其实就等同于:
这样是不是容易理解一点了?
有的时候,明明输入了聚合函数,输入的公式也正确,但却提示:“不支持直接输出聚合函数”,这是为什么呢?
因为公式输错地方啦!!!你在数据集中使用了聚合函数。
大家记住:
聚合函数只能在组件编辑界面,通过添加计算字段去使用,不可以在数据集中参与运算。
关于聚合函数使用时的几点注意事项,总结如下:
1、聚合函数只能在组件编辑界面使用,数据集中使用会报错。
2、聚合函数书写时需要遵守对称性原则。即聚合指标只能和聚合指标进行计算,如果一个非聚合指标需要和聚合指标进行运算,那么需要将非聚合指标嵌套上聚合函数让其先变成聚合指标。
3、聚合函数适合数据集是明细数据,但组件中需要按汇总数据展示的场景,即需要先相加再相乘/除。
感兴趣的小伙伴可以自己动手试试看~ |