目录:
1. 概述编辑
1.1 版本
FineBI版本 | JAR 包 | 功能变动 |
---|---|---|
5.1 | - | - |
5.1.6 | 2020-09-30 | 「实时数据」增加「近似去重计数」的函数 注:支持的数据库版本:CLICKHOUSE、ORACLE(12.1或以上)、SQLSERVER(2019或以上)、PRESTO、REDSHIFT、VERTICA、MAXCOMPUTE。 |
5.1.7 | 2020-11-05 | 函数释义优化&明确函数参数合法性 |
5.1.11 | 2021-04-02 | 实时数据公式校验加强 |
1.2 应用范围
组件编辑界面:添加计算字段
1.3 功能简介
聚合函数可以对一组数据进行汇总,一般使用聚合函数汇总后的值进行再计算。
不同的聚合函数对应不同的汇总方式,汇总方式包括「求和,平均,中位数,最大值,最小值,标准差,方差,去重计数,计数」。
随着用户分析维度的切换,计算字段会自动跟随维度动态调整。
求和聚合函数「SUM_AGG」是使用频次最高的聚合函数,下文将以「SUM_AGG」函数举例,详细讲解聚合函数。
2. SUM_AGG-求和编辑
2.1 概念
SUM_AGG(array):根据当前分析维度,返回指标字段的汇总求和值,生成结果为一数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。注:实时数据中支持使用单个数值类型参数。
若用户横轴维度字段为「日」时,纵轴的计算字段 SUM_AGG(销量) 返回的值为每日的汇总销量。
若用户横轴维度字段为「月」时,SUM_AGG(销量)返回的值为每月的汇总销量。
2.2 示例
用户通过分组表已经获得 2013-2017 年每年的合同金额与购买数量,想要求得每年的平均金额,如下图所示:
2.2.1 使用聚合函数求平均
适用类型:门店毛利率,人均收入,合同平均签单额
新增计算字段「聚合函数求平均」,操作方式如下图所示:
将「聚合求平均」拖拽到指标栏,效果如下图所示:
公式说明:
由于当前的分析维度为合同签约时间(年),则公式意义如下所示:
公式 | 说明 |
---|---|
SUM_AGG(合同金额) | 返回值是每年的合同金额汇总值 |
SUM_AGG(购买数量) | 返回值为每年的购买数量汇总值 |
SUM_AGG(合同金额)/SUM_AGG(购买数量) | 每年的平均金额 例如:2013年平均金额=3887220/41 2013 年全年的合同金额为 3887220 ,购买数量为 41 |
2.2.2 不使用聚合函数求平均
适用类型:每个订单包含总价和销售单价的数据,需要计算总的购买数量,直接使用总价/销售单价,汇总时将每单对应的购买数量相加得到总购买数量。
为了帮助用户更好的理解聚合函数,在同样的场景下不使用聚合函数与 2.1.1 节进行对比,新增计算字段「非聚合求平均值」,直接使用公式合同金额/购买数量,如下图所示:
将「非聚合求平均」拖拽到指标栏,得出的结果如下图所示:
很显然,不使用聚合函数得出的结果是对明细数据做除法后进行求和汇总。
公式说明:
由于当前的分析维度为合同签约时间(年),以 2013 年平均金额为例,公式意义如下所示:
计算顺序 |
---|
先对 2013 年「每单合同」依据公式合同金额/购买数量求出「每单合同的平均值」 |
再对 2013 年所有合同的平均值进行了「求和汇总」 |
3. MIN_AGG-最小值编辑
MIN_AGG(array):根据当前分析维度,返回指标字段的最小值,生成结果为一数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。
注:实时数据支持使用一个任意类型的参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段MIN_AGG(销量)返回的值为每日的最小值销量。
当用户横轴为维度字段'月'时,MIN_AGG(销量)返回的值为每月的最小值销量。
4. COUNT_AGG-计数编辑
COUNT_AGG(array):根据当前分析维度,返回某字段的计数,生成结果为一数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。
注:实时数据支持使用一个任意类型的参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段COUNT_AGG(销量)返回的值为每日的销量的个数。
当用户横轴为维度字段'月'时,COUNT_AGG(销量)返回的值为每月的销量的个数。
5. MAX_AGG-最大值编辑
MAX_AGG(array):根据当前分析维度,返回指标字段的最大值,生成结果为一数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。注:实时数据支持使用一个任意类型的参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段MAX_AGG(销量)返回的值为每日的最大值销量。
当用户横轴为维度字段'月'时,MAX_AGG(销量)返回的值为每月的最大值销量。
6. MEDIAN_AGG-中位数编辑
MEDIAN_AGG(array):根据当前分析维度,返回指标字段的中位数,生成结果为一数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。注:实时数据中支持使用单个数值类型参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段MEDIAN_AGG(销量)返回的值为每日的中位数销量。
当用户横轴为维度字段'月'时,MEDIAN_AGG(销量)返回的值为每月的中位数销量。
7. COUNTD_AGG-去重计数编辑
COUNTD_AGG(array):根据当前分析维度,返回某字段的去重计数,生成结果为一数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。
注:实时数据支持使用一个任意类型的参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段COUNTD_AGG(销量)返回的值为每日的销量的去重个数。
当用户横轴为维度字段'月'时,COUNTD_AGG(销量)返回的值为每月的销量的去重个数。
8. VAR_AGG-方差编辑
VAR_AGG(array):根据当前分析维度,动态返回指标字段的方差,生成结果为一动态数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。注:实时数据中支持使用单个数值类型参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段VAR_AGG(销量)返回的值为每日的销量方差。
当用户横轴为维度字段'月'时,VAR_AGG(销量)返回的值为每月的销量方差。
9. AVG_AGG-平均值编辑
AVG_AGG(array):根据当前分析维度,返回指标字段的汇总平均值,生成结果为一数据列,行数与当前分析维度行数一致。
array:必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。注:实时数据中支持使用单个数值类型参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段 AVG_AGG(销量) 返回的值为每日的平均销量;
当用户横轴为维度字段'月'时,AVG_AGG(销量) 返回的值为每月的平均销量。
10. STDEV_AGG-标准差编辑
STDEV_AGG(array):根据当前分析维度,返回指标字段的标准差,生成结果为一数据列,行数与当前分析维度行数一致。
array 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。
注:实时数据中支持使用单个数值类型参数。
示例:
用户横轴为维度字段'日'时,纵轴的计算字段STDEV_AGG(销量)返回的值为每日的销量标准差。
当用户横轴为维度字段'月'时,STDEV_AGG(销量)返回的值为每月的销量标准差。
11. PERCENTILE_AGG编辑
PERCENTILE_AGG(array,百分位):根据当前分析维度,从给定表达式返回与指定数字对应的百分位处的值。数字必须介于 0 到 1 之间(含 0 和 1 ),例如 0.66,并且必须是数值常量。
注:不支持抽取数据时使用。
array必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。不支持插入文本和日期。
注:支持使用两个数值类型参数,且第二个参数必须为常量。
示例:
用户横轴为维度字段“日”时,纵轴的计算字段PERCENTILE_AGG(销量,0.95)返回的值为每日的95%的销量;
当用户横轴为维度字段“月”时,PERCENTILE_AGG(销量,0.95)返回的值为每月的95%的销量。
12. APPROX_COUNTD_AGG-近似去重计数编辑
当计算数据非常大时,传统的精确的去重计数可能算不出来,使用近似的去重计数可以很快计算出结果。
1)概述
语法 | APPROX_COUNTD_AGG(array) | 根据当前分析维度,动态返回某字段的近似去重计数,生成结果为一动态数据列,行数与当前分析维度行数一致。 |
---|---|---|
参数 | array | 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。 |
返回值 | Number | - |
2)注意事项
仅支持实时数据中使用。
本函数仅支持以下数据库系统:CLICKHOUSE、ORACLE(12c r1,12.1.0.2及以上)、SQLSERVER(2019及以上)、PRESTO、REDSHIFT、VERTICA。当数据库系统为REDSHIFT时,由于REDSHIFT的限制,只能同时对同一个字段做需要排序的聚合操作(如求去重计数、中位数、百分位、近似去重计数),同时对2个或以上的字段做此种聚合操作会发生错误。当数据库系统为VERTICA时,由于VERTICA的限制,只能同时使用(精确)去重计数或近似去重计数中的一个。
支持使用一个任意类型的参数。
3)示例
用户横轴为维度字段"日"时,纵轴的计算字段 APPROX_COUNTD_AGG() 返回的值为每日的销量的近似去重个数。
当用户横轴为维度字段"月"时,APPROX_COUNTD_AGG() 返回的值为每月的销量的近似去重个数。
例如对单据编码计算每天的近似去重计数,如下图所示:
13. Fixed类函数编辑
注:仅支持实时数据中使用。
EXCLUDE(dim1,dim2,……,aggregate):从分析区域的维度中排除掉指定的维度执行聚合计算。
FIXED(dim1,dim2,……,aggregate):固定指定的维度执行聚合计算。
INCLUDE(dim1,dim2,……,aggregate):基于分析区域的维度增加指定的维度执行聚合计算。
详情参见:[实时数据]控制计算粒度函数