知识大全 oraclerank()函数总结
Posted 知
篇首语:曾无好事来相访,赖尔高文一起予。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oraclerank()函数总结相关的知识,希望对你有一定的参考价值。
首先 要了解rank在英语的意思 等级 也就是说这是一个给数据确定等级的函数
以销售为例 有地区 年 月 销售员 销售额 记录这五个字段 我们可以按地区 年 月 销售额对销售员进行排序 这样对销售员来说就相当于有一个等级概念了 第一名就是销售最高的 如果我们要找出每个地区 年 月 销售额的前三名销售员 SQL如何写?
Sql代码
SELECT area_code YEAR MONTH saleroom saler
RANK () OVER (PARTITION BY area_code year month ORDER BY area_code year month saleroom ) RANK
FROM t_sale
Sql代码
SELECT
RANK( SHENZHEN ) WITHIN GROUP
(ORDER BY area_code year month saleroom) Rank
FROM T_SALE
上面这个SQL就可以搞定了 要注意的是 Rank()里的参数必须为常数 或常值表达式 里面参数的个数 类型也要和order by后字段的类型相对应
上面就是Rank函数的两个用法 另外还有一个dense_rank() 它的用法和rank()一样 只是计算等级的方式不同 例如上面的
用dense_rank() 就是
其实现在Oracle对于rank和dense_rank已经支持合计功能 不过这次我仅仅使用了其分析功能 具体语法如下 RANK ( ) OVER ( [query_partition_clause] order_by_clause )
下面给出一些来自网上的示例
TABLE S (subject mark)
数学
语文
数学
数学
数学
语文
语文
语文
现在我想要的结果是 每门科目的前 名的分数
数学
数学
数学
语文
语文
语文
那么语句就这么写
select * from (select rank() over(partition by subject order by mark desc) rk S * from S) T
where T rk<= ;
dense_rank与rank()用法相当 但是有一个区别 dence_rank在处理相同的等级时 等级的数值不会跳过 rank则跳过 row_number() 补充
例如 表
A B C
a liu wang
a jin shu
a cai kai
b yang du
b lin ying
b yao cai
b yang
例如 当rank时为
select m a m b m c rank() over(partition by a order by b) liu from test m
A B C LIU
a cai kai
a jin shu
a liu wang
b lin ying
b yang du
b yang
b yao cai
而如果用dense_rank时为
select m a m b m c dense_rank() over(partition by a order by b) liu from test m
A B C LIU
a cai kai
a jin shu
a liu wang
b lin ying
b yang du
b yang
b yao cai
而如果用row_number()时为
select m a m b m c row_number() over(partition by a order by b) liu from test m
A B C LIU
a cai kai
a jin shu
a liu wang
b lin ying
b yang du
b yang
b yao cai
现在RANK 就是 有了这个字段 就很容易得到前三名的销售员了
cha138/Article/program/Oracle/201311/18955相关参考
总结归纳:110个Oracle常用函数的总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! /*
PHP中时间和日期函数总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!PHP中所有函数都是UNI
RATIO_TO_REPORT功能描述该函数计算expression/(sum(expression))的值它给出相对于总数的百分比即当前行对sum(expression)的贡献 SAMPLE下
总结JavaWeb中几个函数的作用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一Servle
ASCII 返回与指定的字符对应的十进制数; SQL>selectascii(A)Aascii(a)aascii()zeroascii()spacefromdual; AAZEROSP
返回一个数字反余弦值 SQL>selectcosh()fromdual; COSH() EXP 返回一个数字e的n次方根 SQL>selectexp()exp()fr
知识大全 基于php常用函数总结(数组,字符串,时间,文件操作)
数组:【重点】implode(分隔arr)把数组值数据按指定字符连接起来例如$arr=array();$str=implode($arr);explode([分隔]arr)按指定规则对一个字符串进
parse_url函数 我们先来了解一下parse_url函数官方解决 说明 mixedparse_url(string$url[int$ponent=]) 本函数解析一个URL并返回一个
知识大全 php遍历数组 list foreach each方法总结
在php中可以用来遍历数组的函数有很多如有for语句listeachforeach这四个函数这也是在php中遍历数组的几个主要的函数下面我来给大家介绍 foreach遍历数组我们在运用数组时
c#中Split函数的使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!今天用到了这个函数稍微总结