如何在MySQL查询中按状态条件对数值列进行求和
MySQL 单表分类求和查询方案
要实现单行两列分别输出两类STATUS的VALUE总和,使用条件聚合的写法即可,具体语句如下:
SELECT SUM(IF(STATUS = 'DEBET', VALUE, 0)) AS total_debet, SUM(IF(STATUS = 'KREDIT', VALUE, 0)) AS total_kredit FROM 替换为你的实际表名;
执行效果说明
用你提供的样例数据执行上述语句,会得到如下结果:
| total_debet | total_kredit |
|---|---|
| 180 | 110 |
等价写法(使用CASE WHEN)
如果更偏好标准SQL的写法,也可以将IF替换为CASE WHEN语句,效果完全一致:
SELECT SUM(CASE WHEN STATUS = 'DEBET' THEN VALUE ELSE 0 END) AS total_debet, SUM(CASE WHEN STATUS = 'KREDIT' THEN VALUE ELSE 0 END) AS total_kredit FROM 替换为你的实际表名;
内容的提问来源于stack exchange,提问作者Asyah Sinaga
相关产品推荐
相关产品推荐

