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

Oracle 12.1按A分组排除REV值取RE列最大值的实现咨询

Oracle 12.1 分组查询解决方案

嘿,针对你提出的按A列分组、处理RE列值的需求,我整理了一个简洁且精准的SQL方案,完美适配Oracle 12.1版本:

实现思路

核心逻辑分两步处理每个分组:

  1. 先过滤掉RE列中的'REV'值,提取有效数据并取最大值
  2. 若分组里全是'REV'(无有效数据),则将空结果替换为'REV'

SQL代码

SELECT 
    A,
    NVL(MAX(CASE WHEN RE != 'REV' THEN RE END), 'REV') AS RES
FROM 
    your_table_name  -- 替换成你的实际表名
GROUP BY 
    A;

代码细节解释

  • CASE WHEN RE != 'REV' THEN RE END:把分组内所有'REV'值转为NULL,只保留非'REV'的有效记录
  • MAX():聚合函数会自动忽略NULL值,直接得到分组内有效数据的最大值
  • NVL():当分组里全是'REV'时,MAX()会返回NULL,NVL()会将这个空值替换为'REV',覆盖特殊场景的需求

结果验证

用你提供的输入数据测试,执行后会得到完全匹配预期的输出:

ARES
A1C2
A2C6
A3REV

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 16:44:04