如何使用SQL将符号列与金额列关联并按日期聚合
按日期聚合并根据符号计算金额的SQL实现
原始数据表
| date | amount | sign |
|---|---|---|
| 2022-07-01 | 200 | + |
| 2022-07-01 | 300 | + |
| 2022-07-02 | 100 | - |
| 2022-07-02 | 150 | + |
期望聚合结果
| date | amount |
|---|---|
| 2022-07-01 | 500 |
| 2022-07-02 | 50 |
实现SQL语句
SELECT date, SUM(CASE WHEN sign = '+' THEN amount WHEN sign = '-' THEN -amount ELSE 0 END) AS amount FROM your_table_name GROUP BY date;
逻辑说明
用CASE表达式将sign为'-'的金额转为负数,保留'+'的金额原值,再按date字段分组求和,就能得到每日的最终结算金额。注意把语句里的your_table_name替换成实际的数据表名称。
内容的提问来源于stack exchange,提问作者Salvo Danilo
相关产品推荐
相关产品推荐

