quantile
Quantile聚合函数
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
quantile | 1.1.8 | FUNC | BSD 2-Clause | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4610 | quantile | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | lower_quantile topn ddsketch omnisketch count_distinct first_last_agg aggs_for_arrays |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.1.8 | 1817161514 | quantile | - |
| RPM | PIGSTY | 1.1.8 | 1817161514 | quantile_$v | - |
| DEB | PIGSTY | 1.1.8 | 1817161514 | postgresql-$v-quantile | - |
构建
您可以使用 pig build 命令构建 quantile 扩展的 RPM / DEB 包:
pig build pkg quantile # 构建 RPM / DEB 包
安装
您可以直接安装 quantile 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install quantile; # 当前活跃 PG 版本安装
pig ext install -y quantile -v 18 # PG 18
pig ext install -y quantile -v 17 # PG 17
pig ext install -y quantile -v 16 # PG 16
pig ext install -y quantile -v 15 # PG 15
pig ext install -y quantile -v 14 # PG 14
dnf install -y quantile_18 # PG 18
dnf install -y quantile_17 # PG 17
dnf install -y quantile_16 # PG 16
dnf install -y quantile_15 # PG 15
dnf install -y quantile_14 # PG 14
apt install -y postgresql-18-quantile # PG 18
apt install -y postgresql-17-quantile # PG 17
apt install -y postgresql-16-quantile # PG 16
apt install -y postgresql-15-quantile # PG 15
apt install -y postgresql-14-quantile # PG 14
创建扩展:
CREATE EXTENSION quantile;
用法
提供计算分位数的聚合函数,支持 int、bigint、double precision 和 numeric 类型的重载。
CREATE EXTENSION quantile;
函数
| 函数 | 描述 |
|---|---|
quantile(value, quantile float) | 计算单个分位数(0 到 1) |
quantile(value, quantiles float[]) | 一次计算多个分位数,返回数组 |
示例
-- 计算中位数(0.5 分位数)
SELECT quantile(i, 0.5) FROM generate_series(1, 1000) s(i);
-- 500
-- 计算第 95 百分位数
SELECT quantile(i, 0.95) FROM generate_series(1, 1000) s(i);
-- 一次计算所有四分位数(比分别调用更高效)
SELECT quantile(i, ARRAY[0.25, 0.5, 0.75])
FROM generate_series(1, 1000) s(i);
-- {250, 500, 750}
注意:自 PostgreSQL 9.4 起,内置的 percentile_cont 和 percentile_disc 函数已经可用。建议优先使用内置函数,仅在该扩展对您的工作负载有明显性能优势时才使用它。