这怎么查询呢?各位请帮忙

墙角在唱歌 2012-06-15 09:04:17
问题:重新同步套餐功能 把日志中套餐代码相同,实体相同的最高版本号的记录查询出来。

有个日志表 mis_package_syn_log 里面有(code(套餐代码), version(版本号), package_id, orgid(实体), id, scrq)
各位大侠给个思路吧!
...全文
138 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
VanBaston 2012-06-15
  • 打赏
  • 举报
回复
可以啊
墙角在唱歌 2012-06-15
  • 打赏
  • 举报
回复
查出来了,谢谢你哦,但是oracle的函数我还是不大懂,得学习学习,可以向你请教吗?
VanBaston 2012-06-15
  • 打赏
  • 举报
回复
你有没有数据,或结果集发出来我看看呢
VanBaston 2012-06-15
  • 打赏
  • 举报
回复
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全部相同的话应该只会出现一条数据啊。
VanBaston 2012-06-15
  • 打赏
  • 举报
回复
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的关系
墙角在唱歌 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你可以试试下边的语句
SQL code

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版本都出来了??这是怎么回事呢?
墙角在唱歌 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

没有听说过呀?
[/Quote]
我按照你说的查询了下不是这个结果呀!比如说 15459这个code代码相同 实体相同的最高版本号最高版本号是3但是同时出现了2,1版本都出来了??这是怎么回事呢?
墙角在唱歌 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你可以试试下边的语句
SQL code

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]

谢谢三楼的精彩回答,但是我没有这样写过sql语句,你能帮忙解释下不?
sad7even 2012-06-15
  • 打赏
  • 举报
回复
日志中套餐代码相同,实体相同 第一步, 最高版本号的记录 第二步
VanBaston 2012-06-15
  • 打赏
  • 举报
回复
你可以把外层的语句去掉看看查询结果
VanBaston 2012-06-15
  • 打赏
  • 举报
回复
你可以试试下边的语句

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;
墙角在唱歌 2012-06-15
  • 打赏
  • 举报
回复
没有听说过呀?
VanBaston 2012-06-15
  • 打赏
  • 举报
回复
用oracle的分析函数 rank 好像可以实现你的需求吧

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧