SQL实现未知ID分组:按第一列分组求和第二列数据
如何用SQL按ID汇总kWh数值?
现有数据表:
| ID | kWh |
|---|---|
| 1 | 3 |
| 1 | 10 |
| 1 | 8 |
| 1 | 11 |
| 2 | 12 |
| 2 | 4 |
| 2 | 7 |
| 2 | 8 |
| 3 | 3 |
| 3 | 4 |
| 3 | 5 |
期望得到的汇总结果:
| ID | kWh |
|---|---|
| 1 | 32 |
| 2 | 31 |
| 3 | 12 |
实际场景中数据表更复杂、数据量更大,且无法提前知晓所有ID值,请问如何用SQL实现该需求?
这是典型的分组聚合需求,用GROUP BY子句配合SUM()聚合函数即可实现,无需提前知晓ID的具体值。SQL语句如下:
SELECT ID, SUM(kWh) AS kWh FROM 你的数据表名 GROUP BY ID;
关键说明:
SUM(kWh):计算每个ID分组内kWh列的数值总和GROUP BY ID:按照ID列的值对数据分组,相同ID的行自动归为一组- 只需将
你的数据表名替换为实际使用的表名称
如果kWh列存在NULL值,可通过COALESCE函数将NULL转为0后再求和,避免结果出现NULL:
SELECT ID, SUM(COALESCE(kWh, 0)) AS kWh FROM 你的数据表名 GROUP BY ID;
内容的提问来源于stack exchange,提问作者Ammos
相关产品推荐
相关产品推荐

