在Oracle中使用rank()over()排名的问题
来源:互联网 发布:天族女捏脸数据 编辑:程序博客网 时间:2024/05/09 09:17
今天遇到一个问题:
Code:
select row_no, roleid, roleName from (select roleid, roleName, rank() over(order by sum(decode(roundrs, 1, 40, 2, 20, 3, -10, 0, 20, 0)) + 50 desc, sum(decode(roundrs, 1, 1, 0)) desc, sum(decode(roundrs, 3, 1, 0))) row_no from (select roleId, roleName, roundIndex, roundRs from tblContestResult where term = 65 and vocation = 1 and levelnum = 1 group by roleId, roleName, roundIndex, roundRs) group by roleid, roleName) where row_no <= 3;
---rank()over(order by 列名 排序)的结果是不连续的,例如:有4个人,其中有2个是并列第1名,那么最后的排序结果结果如:1 1 3 4。
这个函数的使用导致一个奇怪的现象:sql工具查询没有问题,利用java程序查询在循环中到指定次数后,数据库报错:ORA-00942(找不到表或视图)的问题。这个问题反映到DBA那反馈给我的信息是这是oracle产品中rank() over 的bug,当然DBA很快将这个问题解决,程序就没有报错了。至于DBA怎么解决,不详。特记录于此,具体原因有时间再深究。- 在Oracle中使用rank()over()排名的问题
- 在Oracle中使用rank()over()排名的问题 .
- 在Oracle中使用rank()over()排名的问题
- 在Oracle中使用rank()over()排名的问题
- 在Oracle中使用rank()over()排名的问题
- 在Oracle中使用rank()over()排名的问题
- 在Oracle中使用rank()over()排名的问题
- 在Oracle中使用rank()over()排名的问题
- Oracle中使用rank()over()排名的问题
- Oracle中over(), rank()使用的两个例子
- Oracle 中rank() over()的用法
- oracle的rank,over partition 使用
- 排名函数(ROW_NUMBER、RANK、DENSE_RANK)及OVER子句 Oracle 中分析函数用法之--rank(),dense_rank(),partition,over()
- oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- Teradata各种类型Show 语句
- 【OpenStack】Nova中的create_image
- MyEclipse构建SSH框架简介
- iOS 问题集合
- POCO C++编译配置
- 在Oracle中使用rank()over()排名的问题
- paste deploy python ini 配置文件简单说明
- Java到底是传引用还是传值?
- 图片延时加载
- C++类构造函数初始化列表
- 大数据查询怎么优化
- 控制台使用CString
- Java(Method类)
- arm nop延时方法