1. 概述
1.1 版本
FineBI版本 | 功能变动 |
---|---|
6.0 | - |
6.1.4 | 支持抽取数据使用PERCENTILE_AGG()函数 |
1.2 函数
语法 | PERCENTILE_AGG(array,百分位) | 根据当前分析维度,从给定表达式返回与指定数字对应的百分位处的值。数字必须介于 0 到 1 之间(含 0 和 1 ),例如 0.66,并且必须是数值常量。 |
---|---|---|
参数 | array | 必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。不支持插入文本和日期。 |
2. 注意事项
支持使用两个数值类型参数,且第二个参数必须为常量。
直连仅支持以下数据库:Sybase IQ、Oracle、PostgreSQL(9.4或以上)、ClickHouse、Greenplum、Transwarp Inceptor、Redshift、MaxCompute、Teradata、Hologres、DB2(11.1或以上)、Hive、GaussDB(DWS)(8.1.1或以上)、Dremio。
直连数据库为Redshift时,只能同时对同一字段做有序聚合计算(如求中位数、百分位),否则会发生错误。
直连数据库为MaxCompute或Hive时,只能对整数字段做此种计算。
3. 示例
3.1 求95%的销量
用户横轴为维度字段“日”时,纵轴的计算字段 PERCENTILE_AGG(销量,0.95) 返回的值为每日的95%的销量。
当用户横轴为维度字段“月”时,PERCENTILE_AGG(销量,0.95) 返回的值为每月的95%的销量。如下图所示:
3.2 更多示例
如果你是人力资源经理,可以使用 PERCENTILE_AGG 了解员工的薪酬分布。
公式 | 含义 | 描述 |
---|---|---|
PERCENTILE_AGG(工资,0.25) | 返回25th 的百分位数 | 表示有 25% 的员工薪酬低于该值,用来了解底薪 |
PERCENTILE_AGG(工资,0.5) | 返回50th 的百分位数 | 表示有 50% 的员工薪酬低于该值,是薪酬分布中间点 |
PERCENTILE_AGG(工资,0.9) | 返回90th 的百分位数 | 表示有 90% 的员工薪酬低于该值,了解高收入的情况 |
PERCENTILE_AGG 计算逻辑同 Excel 中的 Percentile。
若百分位不是 1/n 的倍数,函数 PERCENTILE_AGG 使用插值法来确定最终的百分位的值。