我有一张桌子shipments:
--------------------------
id | event | quantity |
--------------------------
1 | received | 20 |
2 | sent | 30 |
3 | received | 45 |
Run Code Online (Sandbox Code Playgroud)
我想要一个查询,它将所有数量相加received,并从sent数量中减去该值。查询应返回结果35。
SELECT SUM(quantity)
FROM shipments
WHERE event = 'received';
Run Code Online (Sandbox Code Playgroud)
该查询返回65. 我怎样才能让它也减去数量sent(并得到结果35)?
使用CASE根据 放置符号的表达式event。
SELECT sum(CASE event
WHEN 'received' THEN
quantity
WHEN 'sent' THEN
-quantity
ELSE
0
END)
FROM shipments;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |