Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33358
  • 博文数量: 19
  • 博客积分: 930
  • 博客等级: 准尉
  • 技术积分: 240
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-25 17:29
文章分类

全部博文(19)

文章存档

2008年(19)

我的朋友

分类:

2008-05-18 21:23:45


作者:   链接:http://liulu.javaeye.com/blog/134918  发表时间: 2007年10月23日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

聚合函数RANK 和 dense_rank 主要的功能是计算一组数值中的排序值。


SELECT a.*,RANK() OVER(ORDER BY col1) FROM table a;
会在最后一列显示该行的排序值

select * from (select rank() over(partition by 科目 order by 分数 desc) rk,a.* from a) t
where t.rk<=3;
会显示科目分组分数前三的数据

合计功能:计算出数值(4,1)在Order By Col1,Col2排序下的排序值,也就是col1=4,col2=1在排序以后的位置
SELECT RANK(4,1) WITHIN GROUP (ORDER BY col1,col2) FROM table;

dense_rank与rank()用法相当,但是有一个区别:dence_rank在并列关系是,相关等级不会跳过。rank则跳过
也就是说如果结果有两个值结果是1,如果用rank下一个就是3 而dense_rank是2
本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



阅读(687) | 评论(0) | 转发(0) |
0

上一篇:聚合函数分组

下一篇:使用rollup cube分组

给主人留下些什么吧!~~