聚合是什么
EXCEL中的聚合
EXCEL透视表中的「透视」:从明细表到结果表由多变少的计算过程(聚合)、变换行列字段位置的结构调整
SQL中的聚合
例如,求「2024年,各产品的销售额总和,保留销售额总和大于2万的产品」,SQL语句如下:
select 产品名称,SUM(销售额) FROM xxx WHERE YEAR(销售日期)=2024 GROUP BY 产品名称 HAVING SUM(销售额)>20000;
结构上看:筛选(where,having)、分组(group by 选择依据)、最后聚合(select 后面的)。
过程上看:从数据明细表到问题交叉表的聚合过程。
FineBI的聚合
「聚合」和 Excel 数据透视表的联系:在 Excel 中的数据透视表实际上也是一个聚合工具。当把数据放入数据透视表,并按照某种分类汇总信息时,他们是在对数据进行聚合。
FineBI 在组件中的聚合:例如,一个销售订单表,包含了每条订单的销售日期、销售金额和客户信息。如果要计算每天的销售金额,需要按照销售日期「年月日」分组,再把当天订单销售额加起来,这个过程就是聚合。
优势与作用:通过聚合,可以把大量复杂的数据简化,并提炼出总体的信息为更易于理解和分析的形式,帮助做出更明智的决策。
聚合计算和明细计算区别
聚合在FineBI中的使用
一个简单的示例
明细计算求毛利率
把数据添加到 FineBI 中,在数据编辑里加工是明细级别的计算。
例如,我们有一张销售明细表,有毛利额和销售额。需要计算毛利率。在数据编辑界面「新增公式列」,输入公式:毛利率=毛利额/销售额 。就得到了每条订单的毛利率数据。如下图所示:
聚合计算求毛利率
在组件中的分析是将指标聚合后计算。
进入组件中,我们将字段拖入右侧的维度指标栏,数据会自动分组聚合,得到每天的毛利额和销售额是多少。
此时,我们想要求的毛利率=每日求和后的毛利额/每日求和后的销售额。展开日期分组后,对组内每行汇总后的数据求毛利率。
计算毛利率需要在组件中「添加计算字段」,公式为:「毛利率-聚合函数计算」=SUM_AGG(毛利额)/SUM_AGG(销售额)
SUM_AGG-求和 | 将字段聚合并汇总求和的函数 | |
SUM_AGG(毛利额) | 得到每日求和后的毛利额 | 计算结果同上图组件中拖入的毛利额和销售额,会跟随维度字段改变进行动态计算
|
SUM_AGG(销售额) | 得到每日求和后的销售额 | |
SUM_AGG(毛利额)/SUM_AGG(销售额) | 对聚合后的字段SUM_AGG(毛利额)和SUM_AGG(销售额)相除,得到聚合字段「毛利率」 |
为什么要使用聚合函数计算毛利率
由于组件中的指标会自动聚合,会导致明细计算出的毛利率数据不准确。
如果我们直接将明细计算得到的毛利率(毛利额/销售额)拖入组件中分析,结果往往会不符合预期。
常见问题
Q:直接聚合和聚合的计算是什么?
1)简单指标,直接聚合
通常描述业务规模,建立在直接聚合上的业务指标,比如销售额总和=sum_agg(销售额)
2)聚合的计算
规模指标难以揭示业务背后的质量情况,此时用聚合的计算作为补充,比如毛利率=sum_agg(利润)/sum_agg(销售额)
如果是直接聚合的话比如仅对一个数值进行求和,可直接拖该字段到指标区域,可自动求和。如果是聚合的计算一般需要使用聚合函数。
详情请参见:聚合函数概述
Q:聚合函数有哪些?
A:详情请参见:聚合函数概述
Q:为什么在组件中才可以使用聚合函数?
使用聚合函数之后可以实现随着分析维度的切换,计算字段会自动跟随维度动态调整。
编辑数据中都是针对个体的行级别的计算,组件中可以指定维度进行聚合计算。
Q:SUM_AGG(A/B)和SUM_AGG(A)/SUM_AGG(B)有什么区别呢?
先相除再汇总还是先分别汇总得到各自的总值再相除。
Q:聚合函数外面能不能嵌套聚合函数?
不能。