我想知道在PostgreSQL中是否有一种方法可以计算多个列的总和。
我有一个包含80多个列的表,我必须编写一个查询添加每个列的值。
我尝试使用SUM(col1, col2, col3等) ,但它不起作用。
我想知道在PostgreSQL中是否有一种方法可以计算多个列的总和。
我有一个包含80多个列的表,我必须编写一个查询添加每个列的值。
我尝试使用SUM(col1, col2, col3等) ,但它不起作用。
SELECT COALESCE(col1,0) + COALESCE(col2,0)
FROM yourtable
这取决于你希望如何对这些值进行求和。如果我正确理解了你的问题,你正在寻找此示例中的第二个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=#
SELECT GREATEST(0, SUM(a + b)) FROM yourtable;
- Lorenzo结合当前回答,使用此方法获取总和 SUM:
SELECT SUM(COALESCE(col1,0) + COALESCE(col2,0)) FROM yourtable;
SELECT(
SELECT SUM(t.f)
FROM (VALUES (yourtable.col1), (yourtable.col2), (yourtable.col3)) t(f)
)
FROM yourtable;
t(f)
? - chrismarx