SQL按ID分组未获唯一结果,如何实现单ID一行金额求和?
解决方案
错误原因
你的GROUP BY id, Amount会将相同ID且相同Amount值的记录归为一组,这就导致同一个ID下不同的Amount值会生成独立的分组,最终输出多行相同ID的结果,无法得到该ID的总金额。
修正后的SQL
只需要在GROUP BY子句中保留id即可,这样就能按ID分组,汇总该ID下所有的Amount值:
SELECT ID, SUM(Amount) AS Revenue FROM REVENUE WHERE ID IS NOT NULL GROUP BY ID;
结果验证
用你提供的测试数据执行修正后的SQL,会得到如下结果:
| ID | Revenue |
|---|---|
| 1001 | 269.56 |
| 1003 | 54.00 |
| 1005 | 38.90 |
完全符合“每个ID一行,显示总金额”的需求。
内容的提问来源于stack exchange,提问作者jm0987
相关产品推荐
相关产品推荐

