我想知道是否有办法计算PostgreSQL中多列的总和。
我有一个包含80多列的表,我必须编写一个查询,添加每列的每个值。
我尝试使用SUM(col1,col2,col3等),但它没有用。
答案 0 :(得分:47)
SELECT COALESCE(col1,0) + COALESCE(col2,0)
FROM yourtable
答案 1 :(得分:39)
这取决于您希望如何对值进行求和。如果我正确地阅读了您的问题,那么您正在寻找此示例中的第二个SELECT:
template1=# SELECT * FROM yourtable ;
a | b
---+---
1 | 2
4 | 5
(2 rows)
template1=# SELECT a + b FROM yourtable ;
?column?
----------
3
9
(2 rows)
template1=# SELECT SUM( a ), SUM( b ) FROM yourtable ;
sum | sum
-----+-----
5 | 7
(1 row)
template1=# SELECT SUM( a + b ) FROM yourtable ;
sum
-----
12
(1 row)
template1=#
答案 2 :(得分:0)
结合当前答案,并使用它来获得总和:
SELECT SUM(COALESCE(col1,0) + COALESCE(col2,0)) FROM yourtable;