我是 PL/pgsql 的新手,我想创建一个新函数。
就我而言,我有这张桌子:
第 1 列:变量 = 2 2 2 2 2 2 2 2 2 2 第 2 列:值 = 20 20 20 20 180 180 180 180 180 180 第 3 列:拉伸 = 1 1 1 1 1 1 2 2 2 2
我想做一个函数来从 STRETCH 不同的字段 VALUE 创建 N 个数组,例如:
阵列 1:20,20,20,20,180,180, 阵列 2:180,180,180,180,
我该怎么做?
我是 PL/pgsql 的新手,我想创建一个新函数。
就我而言,我有这张桌子:
第 1 列:变量 = 2 2 2 2 2 2 2 2 2 2 第 2 列:值 = 20 20 20 20 180 180 180 180 180 180 第 3 列:拉伸 = 1 1 1 1 1 1 2 2 2 2
我想做一个函数来从 STRETCH 不同的字段 VALUE 创建 N 个数组,例如:
阵列 1:20,20,20,20,180,180, 阵列 2:180,180,180,180,
我该怎么做?
这将是提供测试用例的有用方法:
CREATE TABLE tbl (variable int, value real, stretch int);
INSERT INTO tbl VALUES
(2, 20, 1)
,(2, 20, 1)
,(2, 20, 1)
,(2, 20, 1)
,(2, 180, 1)
,(2, 180, 1)
,(2, 180, 2)
,(2, 180, 2)
,(2, 180, 2)
,(2, 180, 2);
SELECT variable, stretch, array_agg(value) AS val_arr
FROM tbl
GROUP BY 1,2
ORDER BY 1,2;
我想这样做是因为我想获取所有数组并计算每个数组的平均值。
SELECT variable, stretch, avg(value) AS val_avg
FROM tbl
GROUP BY 1,2
ORDER BY 1,2;