arraymath

数组逐元素数学运算符包

概览

扩展包名版本分类许可证语言
pg_arraymath1.1FUNCMITC
ID扩展名BinLibLoadCreateTrustReloc模式
4770arraymath-
相关扩展aggs_for_arrays aggs_for_vecs intarray first_last_agg floatvec

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.11817161514pg_arraymath-
RPMPIGSTY1.11817161514pg_arraymath_$v-
DEBPIGSTY1.11817161514postgresql-$v-pg-arraymath-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
d12.x86_64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
d12.aarch64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
d13.x86_64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
d13.aarch64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
u22.x86_64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
u22.aarch64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
u24.x86_64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
u24.aarch64
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1
PIGSTY 1.1

构建

您可以使用 pig build 命令构建 pg_arraymath 扩展的 RPM / DEB 包:

pig build pkg pg_arraymath         # 构建 RPM / DEB 包

安装

您可以直接安装 pg_arraymath 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install pg_arraymath;          # 当前活跃 PG 版本安装
pig ext install -y pg_arraymath -v 18  # PG 18
pig ext install -y pg_arraymath -v 17  # PG 17
pig ext install -y pg_arraymath -v 16  # PG 16
pig ext install -y pg_arraymath -v 15  # PG 15
pig ext install -y pg_arraymath -v 14  # PG 14
dnf install -y pg_arraymath_18       # PG 18
dnf install -y pg_arraymath_17       # PG 17
dnf install -y pg_arraymath_16       # PG 16
dnf install -y pg_arraymath_15       # PG 15
dnf install -y pg_arraymath_14       # PG 14
apt install -y postgresql-18-pg-arraymath   # PG 18
apt install -y postgresql-17-pg-arraymath   # PG 17
apt install -y postgresql-16-pg-arraymath   # PG 16
apt install -y postgresql-15-pg-arraymath   # PG 15
apt install -y postgresql-14-pg-arraymath   # PG 14

创建扩展

CREATE EXTENSION arraymath;

用法

arraymath: PostgreSQL 的逐元素数组运算

提供整数、浮点数和数值数组的逐元素运算符和工具函数。

CREATE EXTENSION arraymath;

运算符

所有运算符以 @ 为前缀,表示逐元素操作。支持数组对数组(相同长度或循环扩展)以及数组对标量。

运算符说明返回类型
@=逐元素相等boolean[]
@<逐元素小于boolean[]
@>逐元素大于boolean[]
@<=逐元素小于等于boolean[]
@>=逐元素大于等于boolean[]
@+逐元素加法同类型
@-逐元素减法同类型
@*逐元素乘法同类型
@/逐元素除法同类型

函数

函数说明
array_sum(anyarray)所有元素之和
array_avg(anyarray)所有元素的平均值
array_min(anyarray)最小元素
array_max(anyarray)最大元素
array_median(anyarray)中位数元素
array_sort(anyarray)升序排序
array_rsort(anyarray)降序排序

示例

-- 数组与标量
SELECT ARRAY[1,2,3,4] @< 4;             -- {t,t,t,f}
SELECT ARRAY[3.4,5.6,7.6] @* 8.1;       -- {27.54,45.36,61.56}

-- 数组与数组(较短数组循环扩展)
SELECT ARRAY[1,2,3,4,5,6] @* ARRAY[1,2]; -- {1,4,3,8,5,12}
SELECT ARRAY[1,2,3] @= ARRAY[3,2,1];     -- {f,t,f}

-- 工具函数
SELECT array_sort(ARRAY[9,1,8,2,7]);     -- {1,2,7,8,9}
SELECT array_sum(ARRAY[1,2,3,4,5]);      -- 15
SELECT array_median(ARRAY[1,2,3,4,5]);   -- 3

最后修改 2026-03-14: update extension metadata (953cbd0)