使用GROUP BY实现分组内expense_amount求和的SQL查询需求
按分类名称分组计算支出金额总和的SQL实现
原查询仅获取ID为42的单条支出记录:
SELECT * FROM expense e JOIN category c ON e.category_id = c.category_id WHERE e.id = 42;
要实现按分类名称分组并统计每组支出金额总和,修改后的SQL语句如下:
SELECT c.category_name, SUM(e.expense_amount) AS expense_amount FROM expense e JOIN category c ON e.category_id = c.category_id GROUP BY c.category_name;
关键说明:
- 删除原语句中
WHERE e.id = 42的条件,该条件会限制仅查询单条记录,无法完成分组统计 - 使用
GROUP BY c.category_name按分类名称对数据分组 - 通过
SUM(e.expense_amount)计算每组的支出总额,用AS指定别名保证结果列名与预期一致
预期结果:
| 分类名称 | 支出总额 |
|---|---|
| 账单与充值 | 200 |
| 鞋类 | 1200 |
| 娱乐 | 2690 |
| 医疗保健 | 726 |
| 厨具 | 360 |
| 旅行 | 1500 |
| 餐饮 | 400 |
内容的提问来源于stack exchange,提问作者icy spicy
相关产品推荐
相关产品推荐

