select * from (select rank() over(partition by t.code, t.orgid order by t.version desc) rk, t.* from mis_package_syn_log t)
where rk = 1;
这个语句code和orgid全部相同的话应该只会出现一条数据啊。
partition by后边是跟的分组的字段
order by后边跟的是排序的字典
rank() over(partition by t.code, t.orgid order by t.version desc) rk就是按照code和orgid进行分组,在每个分组中按version进行倒序排列给每条数据加上一个等级。
你执行select rank() over(partition by t.code, t.orgid order by t.version desc) rk, t.code, t.orgid, t.version from mis_package_syn_log t的时候,可以看看 rk、code、orgid的关系
select * from (select rank() over(partition by t.code, t.orgid order by t.version desc) rk, t.* from mis_package_syn_log t)
where rk = 1;
[/Quote]我按照你说的查询了下不是这个结果呀!比如说 15459这个code代码相同 实体相同的最高版本号最高版本号是3但是同时出现了2,1版本都出来了??这是怎么回事呢?