PosgreSQL递归选择与求和

时间:2019-07-12 20:48:31

标签: sql postgresql

我有一个包含2列namebalance的表。它包含代表余额的交易的多个条目。例如,Clifford可能出现三次,其中两个条目为正,而1个条目为负。我需要一个查询,该查询将为表中的所有用户返回具有三列namenegative_totalpositive_total的不同用户。

1 个答案:

答案 0 :(得分:0)

只需使用条件聚合:

selet name,
      sum(balance) filter (where balance < 0) as negative_total,
      sum(balance) filter (where balance > 0) as positive_total
from t
group by name;