PERCENTILE_ARRAY
更新时间:2025-10-16
描述
PERCENTILE_ARRAY 函数用于计算精确的百分位数数组,允许一次性计算多个百分位数值。这个函数主要适用于小数据量。
主要特点:
- 精确计算:提供精确的百分位数结果,而不是近似值
- 批量处理:可以一次计算多个百分位数
- 适用范围:最适合处理数据量较小的场景
语法
                SQL
                
            
            1PERCENTILE_ARRAY(<col>, <array_p>)参数
| 参数 | 说明 | 
|---|---|
| <col> | 需要计算百分位数的列 | 
| <array_p> | 百分位数数组,数组中的每个元素必须在 [0.0, 1.0]范围内,例如[0.5, 0.95, 0.99] | 
返回值
返回一个 DOUBLE 类型的数组,包含了对应于输入百分位数数组的计算结果。
举例
                SQL
                
            
            1-- 创建示例表
2CREATE TABLE sales_data (
3    id INT,
4    amount DECIMAL(10, 2)
5) DUPLICATE KEY(`id`)
6DISTRIBUTED BY HASH(`id`) BUCKETS AUTO
7PROPERTIES (
8    "replication_allocation" = "tag.location.default: 1"
9);
10
11-- 插入示例数据
12INSERT INTO sales_data VALUES
13(1, 10.5),
14(2, 15.2),
15(3, 20.1),
16(4, 25.8),
17(5, 30.3),
18(6, 35.7),
19(7, 40.2),
20(8, 45.9),
21(9, 50.4),
22(10, 100.6);
23
24-- 计算多个百分位数
25SELECT percentile_array(amount, [0.25, 0.5, 0.75, 0.9]) as percentiles
26FROM sales_data;
                Text
                
            
            1+-----------------------------------------+
2| percentiles                             |
3+-----------------------------------------+
4| [21.25, 32.5, 43.75, 54.99999999999998] |
5+-----------------------------------------+