选择PostgreSQL中数组列的和
如果我有下表:选择PostgreSQL中数组列的和,postgresql,postgresql-9.1,Postgresql,Postgresql 9.1,如果我有下表: Table "users" Column | Type | Modifiers ---------------+------------------+----------- id | integer | monthly_usage | real[] | 其中,monthly_usage是由12个数字组成的数组,即{1.2,1.3,6.2,0.9
Table "users"
Column | Type | Modifiers
---------------+------------------+-----------
id | integer |
monthly_usage | real[] |
其中,monthly_usage
是由12个数字组成的数组,即{1.2,1.3,6.2,0.9,…}
如何选择该列的总和
大致如下:
选择id、sum(每月使用)作为用户的总使用量代码>
这显然不起作用。这个概括和重新格式化的答案帮助我理解它是如何工作的:
SELECT id, (SELECT SUM(s) FROM UNNEST(monthly_usage) s) as total_usage from users;
SELECT
sum(a) AS total
FROM
(
SELECT
unnest(array [1,2,3]) AS a
) AS b
结果:
total
6
138
以多种方式将值相加对于数组,我经常使用的形式是:
WITH X AS(
SELECT unnest(ARRAY[1, 5, 0, 12, 1, 0, 30, 20, 8, 3, 15, 15, 20, 8]) AS VALOR
)
SELECT SUM(VALOR) FROM X
结果:
total
6
138
更多信息