中易网

oracle rank函数怎么用

答案:2  悬赏:70  
解决时间 2021-04-27 22:19
oracle rank函数怎么用
最佳答案
rank是oracle分析函数中的一个,主要用法是
rank()over(partiton by XX orader by ZZ desc)(分组排序序号)
一般用来分组排序,与group by XX order by ZZ 不同的是,它并不影响现有数据。
比如:
xx zz
1 2
1 3
1 4
2 2
2 6
那么
select xx,zz,rank()over(partiton by XX orader by ZZ ) aa from table的结果为
xx zz aa
1 2 1
1 3 2
1 4 3
2 2 1
2 6 2
partition by可不写,这样就是全局排序,与order by的排序结果相同,只是会存在序号
还有其他用法,而且还有很多分析函数,这个可以上网找找,oracle分析函数,里面的例子好多,希望对你有帮助。
全部回答
table:s (subject,mark) 数学,80 语文,70 数学,90 数学,60 数学,100 语文,88 语文,65 语文,77 现在我想要的结果是:每门科目的前3名的分数 数学,100 数学,90 数学,80 语文,88 语文,77 语文,70 那么语句就这么写: select * from (select rank() over(partition by subject order by mark desc) rk,s.* from s) t where t.rk<=3; dense_rank与rank()用法相当,但是有一个区别:dence_rank在处理相同的等级时,等级的数值不会跳过。rank则跳过。 例如:表 a b c a liu wang a jin shu a cai kai b yang du b lin ying b yao cai b yang 99 例如:当rank时为: select m.a,m.b,m.c,rank() over(partition by a order by b) liu from test3 m a b c liu a cai kai 1 a jin shu 2 a liu wang 3 b lin ying 1 b yang du 2 b yang 99 2 b yao cai 4 而如果用dense_rank时为: select m.a,m.b,m.c,dense_rank() over(partition by a order by b) liu from test3 m a b c liu a cai kai 1 a jin shu 2 a liu wang 3 b lin ying 1 b yang du 2 b yang 99 2 b yao cai 3
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
问一下玩功夫小子的同志们
姚记手工饺子地址在什么地方,想过去办事
铅笔芯被刺到肉里几年了
2010湖北省高考AB卷区别?
信用卡金卡和普通卡的区别
麦迪还能问鼎吗?
感情问题 求大家给我点建议
我是一个普通一本学校的大二学生,非985 211.
看看我的电脑配置怎么样。急急急
试玉要焼三日满,辨材须待七年期.搜对句
关于相对论的疑问
萧县哪儿有卖低档裤的
孙记河间驴肉火烧怎么去啊,有知道地址的么
21.3克 灵魂的重量?
DNF东北二区驱魔法杖值多少钱?
推荐资讯
容祖儿的《这就是爱吗》有粤语版吗,歌名是什
子宫前位 大小约75*67*53mm 子宫内可探及约47
鑫品钢化玻璃地址在什么地方,想过去办事
手机游戏亚特兰蒂斯怎么玩?
永安阿兰粿条(闽南大厦店)地址有知道的么?有
急求AutoCAD2009的激活碼和序列號
电动车电瓶48V和24V有什么曲别
钢筋混凝土使用钢筋的主要目的是
12岁喜欢一个人算不算早恋
谁帮我起个简单点的网名(两个字)
佳源住宿地址在什么地方,想过去办事
有没有哪中软件不是在线翻译的 不是单词 是文
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?