我有一张像:
AVG_AMOUNT | WAS_MEMBER | 年 |
---|---|---|
200.00 | 真的 | 2018 |
100.00 | 错误 | 2018 |
20.00 | 真的 | 2019 |
300.00 | 错误 | 2019 |
400.00 | 真的 | 2020 |
10.00 | 错误 | 2020 |
我想要一张像:
DIFF_AVG_AMOUNT | 年 |
---|---|
100.00 | 2018 |
-280.00 | 2019 |
390.00 | 2020 |
我怎样才能根据每年的会员资格获得不同的收入?可能使用了一个分区,但不确定如何使用与一个分区的差异。
答案 0 :(得分:2)
您可以使用包含 SUM()
的条件聚合,例如
SELECT SUM(CASE WHEN was_member='True' THEN avg_amount
WHEN was_member='False' THEN - avg_amount END) AS diff_avg_amount,
year
FROM tab
GROUP BY year
ORDER BY year