选择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
更多信息