Oracle SQL按EMPNO合并多行START、FINISH非零值问题咨询
Oracle SQL同EMPNO多行合并解决方案
你需要的合并效果可以通过按EMPNO分组搭配MAX()聚合函数实现,适配你提供的样例场景,SQL语句如下:
SELECT EMPNO, MAX(START) AS START, MAX(FINISH) AS FINISH FROM 你的业务表名 GROUP BY EMPNO ORDER BY EMPNO;
方案说明
- 你的原始数据中,同一个EMPNO对应的START列仅存在1个非零有效值,其余行该字段值为0,FINISH列规则一致,
MAX()函数会自动提取每个分组内的最大值,也就是你需要保留的非零值,输出结果完全匹配你的预期。 - 若后续场景变动,同一个EMPNO下某列存在多个非零值需要累加汇总,将
MAX()替换为SUM()即可。
内容的提问来源于stack exchange,提问作者user16880060
相关产品推荐
相关产品推荐

