在Pandas DataFrame中按账户分别计算CR与DR的差值
账户交易金额计算方案
原始交易数据

需求
针对每个账户编号,计算所有CR类型交易的金额总和,减去所有DR类型交易的金额总和,得到对应账户的REMIT值。
预期输出
| account_no | REMIT |
|---|---|
| 10051056346 | 7,04,215 |
| 10051059074 | 9,39,395 |
SQL实现代码
假设原始数据存储在表transaction_records中,包含account_no(账户编号)、type(交易类型:CR/DR)、amount(交易金额)三个字段,可以用以下SQL语句直接得到结果:
SELECT account_no, FORMAT( SUM(CASE WHEN type = 'CR' THEN amount ELSE -amount END), 'N', 'en-IN' ) AS REMIT FROM transaction_records GROUP BY account_no;
代码说明
- 用
CASE分支处理交易类型:CR类金额正常计入,DR类金额按负数计算,求和时就等价于CR总和减DR总和 - 按
account_no分组,确保每个账户单独计算 FORMAT函数把计算结果转换成带印度式千位分隔的格式,和预期输出的样式匹配
内容的提问来源于stack exchange,提问作者Harsh Mishra
相关产品推荐
相关产品推荐

