SQL聚合函数与数据操作问题:按ID分组求和并提取指定字符生成新列
解决方案
你需要修改原SQL的三点逻辑:移除单ID过滤条件、增加分组聚合逻辑、替换Updated ID的取值逻辑为字符串截取,通用SQL写法如下(适配MySQL、PostgreSQL、SQL Server等主流数据库):
SELECT ID, SUM(Value) AS Value, SUBSTRING(ID, 4, 2) AS 'Updated ID' FROM Test_DATABASE GROUP BY ID
逻辑说明
- 移除原语句的
WHERE ID = xxx10xxx过滤条件,实现对全表所有ID的处理 - 新增
GROUP BY ID子句,按ID字段的不同取值分组计算Value字段的总和 - 用
SUBSTRING(ID, 4, 2)截取原始ID字符串从第4位开始、长度为2的字符,作为Updated ID列的取值,不同数据库的截取函数可对应替换:- Oracle、SQLite数据库替换为
SUBSTR(ID, 4, 2)
- Oracle、SQLite数据库替换为
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

