我有一个包含多个包含整数(a1,a2,a3等)的字段的postgresql表。
我想一次跨多个列运行汇总函数(均值,标准差等)。(其中一些可能具有合理数量的空值,因此我不想只生成列平均值然后再对它们求平均值)。
我可以得到一组整数
SELECT unnest(array[a1,a2,a3]) as values FROM table
但是我然后无法获取聚合函数以将此作为输入。
谁能给我任何有关如何使它工作的提示?
使用子查询,您可以使用所有行:
SELECT sum(val) FROM ( SELECT unnest(array[a1,a2,a3]) as val FROM table) alias;
您还可以对行进行分组,例如:
SELECT field, sum(val) FROM ( SELECT field, unnest(array[a1,a2,a3]) as val FROM table) alias GROUP BY field;