【发布时间】:2016-12-09 10:13:41
【问题描述】:
给定以下oracle数据库表:
小组修订意见 1 1 1 1 2 2 1 空空 2 1 1 2 2 2 2 3 3 2 4 4 2 空空 3 1 1 3 2 2 3 3 3 3 空空我想在其组内将评论列相对于版本向下移动一级,以便得到下表:
小组修订意见 1 1 无 1 2 1 1 无 2 2 1 无 2 2 1 2 3 2 2 4 3 2 无 4 3 1 无 3 2 1 3 3 2 3 无 3我有以下疑问:
合并到 example_table t1 使用 example_table t2 在 ( (t1.revision = t2.revision+1 或 (t2.revision = ( 选择最大值(t3.revision) FROM example_table t3 哪里 t3.group = t1.group ) AND t1.revision 为空) ) 和 t1.group = t2.group) 匹配时更新集 t1.comment = t2.comment;这完成了大部分工作(仍然需要一个单独的查询来覆盖修订 = 1),但它非常慢。
所以我的问题是,我如何在这里尽可能有效地使用 Max 来提取每个组的最高修订版?
【问题讨论】:
标签: oracle merge analytic-functions