arraymath
数组逐元素数学运算符包
仓库
pramsey/pgsql-arraymath
https://github.com/pramsey/pgsql-arraymath
源码
pgsql-arraymath-1.1.tar.gz
pgsql-arraymath-1.1.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_arraymath | 1.1 | FUNC | MIT | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4770 | arraymath | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | aggs_for_arrays aggs_for_vecs intarray first_last_agg floatvec |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.1 | 1817161514 | pg_arraymath | - |
| RPM | PIGSTY | 1.1 | 1817161514 | pg_arraymath_$v | - |
| DEB | PIGSTY | 1.1 | 1817161514 | postgresql-$v-pg-arraymath | - |
构建
您可以使用 pig build 命令构建 pg_arraymath 扩展的 RPM / DEB 包:
pig build pkg pg_arraymath # 构建 RPM / DEB 包
安装
您可以直接安装 pg_arraymath 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
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;
用法
提供整数、浮点数和数值数组的逐元素运算符和工具函数。
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