ORACLE KEEP (DENSE_RANK FIRST/LAST) 聚合子句

迁移特征 keep_dense_rank 的规则事实、精确目标横向结论与可执行验证路径。产品家族相似性不作为精确版本结论的依据。

professionalmajorhighora.func.keep_dense_rank

场景说明

该场景属于“函数与表达式”,适用于 sql、mybatis、plsql。权威状态:可进入权威统计。

正向识别示例

以下均来自规则库中 should_hit=true 的合成公开示例,不是客户代码。

SELECT MAX(sal) KEEP (DENSE_RANK FIRST ORDER BY hire_date) FROM emp
SELECT dept, MIN(sal) KEEP (DENSE_RANK LAST ORDER BY ver) FROM emp GROUP BY dept

21 个精确目标版本 / 模式

目标支持度证据等级公开边界深入核对
GaussDB 505(ORA 模式)partialartifact_verified未登记额外公开说明,按来源与验证步骤复核。改造点 · 真机工件
openGauss 5.0 A 模式nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
openGauss 6.0 A 模式nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
磐维 PanWeiDB 3.0 A 模式partialartifact_verified未登记额外公开说明,按来源与验证步骤复核。改造点 · 真机工件
PostgreSQL 16 + orafce 4.16nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
PostgreSQL 16nonedoc_based未登记额外公开说明,按来源与验证步骤复核。改造点
展开 15 个 unknown / undeclared 结论
达梦 DM8unknownunverified当前事实源不足,不推断兼容。
GBase 8sunknownunverified当前事实源不足,不推断兼容。
GoldenDB V6unknownunverified当前事实源不足,不推断兼容。
瀚高 HGDB 4.5unknownunverified当前事实源不足,不推断兼容。
人大金仓 KingbaseES V8unknownunverified当前事实源不足,不推断兼容。
OceanBase 4.2.5 MySQL 模式unknownunverified当前事实源不足,不推断兼容。
OceanBase 4.2.5 Oracle 模式unknownunverified当前事实源不足,不推断兼容。
OceanBase 4.3.5 MySQL 模式unknownunverified当前事实源不足,不推断兼容。
OceanBase 4.3.5 Oracle 模式unknownunverified当前事实源不足,不推断兼容。
openGauss 6.0 B 模式(Dolphin)unknownunverified当前事实源不足,不推断兼容。
磐维 PanWeiDB 2.0unknownunverified当前事实源不足,不推断兼容。
PolarDB(Oracle 兼容)2.0unknownunverified当前事实源不足,不推断兼容。
神通数据库 7unknownunverified当前事实源不足,不推断兼容。
TDSQL Boundlessunknownunverified当前事实源不足,不推断兼容。
TiDB 8.5unknownunverified当前事实源不足,不推断兼容。

改造与验证路径

推荐方向

db_side · 聚合形态先在原分组内按 KEEP 的 ORDER BY 计算 DENSE_RANK,FIRST 取 rank=1、LAST 反向排名取 rank=1,再对全部并列行执行原 MIN/MAX/SUM/AVG/COUNT/VARIANCE/STDDEV;analytic OVER 形态在窗口分区内排名后用窗口条件聚合,保留每个输入行,禁止外层 GROUP BY 改变行数

库侧

聚合形态用 dense_rank 子查询后按原分组键聚合;analytic OVER 用窗口条件聚合回填到每个输入行 · 风险 review

应用侧

应用 SQL 按形态生成排名子查询和聚合/窗口聚合,禁止用 ROW_NUMBER 只取一行 · 风险 review

验收步骤

覆盖聚合形态与 analytic OVER、全部七种合法聚合、FIRST/LAST、升降序、NULLS FIRST/LAST 和多个并列值;逐组比对聚合结果,并断言窗口形态保留每个输入行

公开来源