Postgresql 如何将一列求和,其中某些值需要首先乘以基于另一列中文本的常数

Postgresql 如何将一列求和,其中某些值需要首先乘以基于另一列中文本的常数,postgresql,Postgresql,我有以下表格: side amount ===================== buy | 10 sell | 17 sell | 20 buy | 5 sell | 4 buy | 30 现在我试图得到一个求和的查询,但是需要减去卖方。如何在SQL中实现这一点 所以基本上是下面的计算 10+-17+-20+5+-4+30=4使用大小写表达式: select sum(case s

我有以下表格:

side         amount   
=====================
buy     |     10
sell    |     17
sell    |     20
buy     |     5
sell    |     4
buy     |     30
现在我试图得到一个求和的查询,但是需要减去卖方。如何在SQL中实现这一点

所以基本上是下面的计算 10+-17+-20+5+-4+30=4

使用大小写表达式:

select sum(case side when 'buy' then amount else -amount end)
from the_table;
CASE表达式返回“买入”的金额和“卖出”的负金额