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; 这个语句code和orgid全部相同的话应该只会出现一条数据啊。
where rk = 1;
谢谢三楼的精彩回答,但是我没有这样写过sql语句,你能帮忙解释下不?
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的关系
where rk = 1;
这个语句code和orgid全部相同的话应该只会出现一条数据啊。