SQL如何按code分组对相同ID的多行duration值求和汇总
按code分组累加duration的SQL实现
直接使用GROUP BY分组搭配SUM聚合函数即可实现需求,语句如下:
SELECT code, SUM(duration) AS total_duration FROM table1 GROUP BY code;
语句说明
GROUP BY code:将所有code值相同的记录划分到同一分组,最终输出结果中每个code仅出现1次,达到code去重的效果SUM(duration):对每个分组下所有记录的duration值做累加计算,AS total_duration是为累加后的计算值设置别名,方便识别字段含义- 如果表中存在duration为NULL的记录,可以将求和部分优化为
SUM(COALESCE(duration, 0)),遇到NULL值会自动按0计算,避免求和结果返回NULL
效果对照
针对你提到的样例数据,执行上述语句后的返回结果如下:
| code | total_duration |
|---|---|
| 345 | 5 |
| 567 | 12 |
内容的提问来源于stack exchange,提问作者hewi
相关产品推荐
相关产品推荐

