You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL如何按LOB字段分组合并表数据生成cnt和failed_cnt列

问题原因

你当前编写的SQL仅对每行原始数据单独做字段值转换,没有按lob字段做分组聚合操作,因此每个lob对应的多条原始记录都会独立输出一行,最终出现重复的lob记录。

修正后的SQL代码

SELECT 
    lob,
    SUM(CASE WHEN `desc` NOT LIKE 'Failed%' THEN cnt ELSE 0 END) AS cnt,
    SUM(CASE WHEN `desc` LIKE 'Failed%' THEN cnt ELSE 0 END) AS failed_cnt
FROM 
    table1
GROUP BY 
    lob

逻辑说明

  • 通过GROUP BY lob将同一个业务线(lob)的所有记录合并为一行,消除重复的lob记录
  • 将条件判断逻辑嵌套在SUM聚合函数中,对同一lob下符合条件的cnt值求和,无符合条件的记录时默认返回0,完全匹配需求
  • 注意desc是SQL的保留关键字,用反引号包裹可以避免语法报错

内容的提问来源于stack exchange,提问作者mali_the

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:30:05