oracle排名函数(rank)实例详解(学习自用备份)

oracle排名函数(rank)实例详解(学习自用备份)

ID:37182962

大小:110.01 KB

页数:4页

时间:2019-05-21

oracle排名函数(rank)实例详解(学习自用备份)_第1页
oracle排名函数(rank)实例详解(学习自用备份)_第2页
oracle排名函数(rank)实例详解(学习自用备份)_第3页
oracle排名函数(rank)实例详解(学习自用备份)_第4页
资源描述:

《oracle排名函数(rank)实例详解(学习自用备份)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、--已知:两种排名方式(分区和不分区):使用和不使用partition--两种计算方式(连续,不连续),对应函数:dense_rank,rank·查询原始数据:学号,姓名,科目名,成绩select*fromt_scoreS_IDS_NAMESUB_NAMESCORE1张三语文80.002李四数学80.001张三数学0.002李四语文50.003张三丰语文10.003张三丰数学 3张三丰体育120.004杨过JAVA90.005mikec++80.003张三丰Oracle0.004杨过Oracle77.002李四Oracle77.00·查询各学生科目为Oracle排

2、名(简单排名)selectsc.s_id,sc.s_name,sub_name,sc.score,rank()over(orderbyscoredesc)名次fromt_scorescwheresub_name='Oracle'S_IDS_NAMESUB_NAMESCORE名次4杨过Oracle77.0012李四Oracle77.0013张三丰Oracle0.003对比:rank()与dense_rank():非连续排名与连续排名(都是简单排名)selectsc.s_id,sc.s_name,sub_name,sc.score,dense_rank()over(o

3、rderbyscoredesc)名次fromt_scorescwheresub_name='Oracle'S_IDS_NAMESUB_NAMESCORE名次4杨过Oracle77.0012李四Oracle77.0013张三丰Oracle0.002·查询各学生各科排名(分区排名)selectsc.s_id,sc.s_name,sub_name,sc.score,rank()over(partitionbysub_nameorderbyscoredesc)名次fromt_scorescS_IDS_NAMESUB_NAMESCORE名次4杨过JAVA90.0014杨过O

4、racle77.0012李四Oracle77.0013张三丰Oracle0.0035mikec++80.0013张三丰数学 12李四数学80.0021张三数学0.0033张三丰体育120.0011张三语文80.0012李四语文50.0023张三丰语文10.003·查询各科前2名(分区排名)·类似:新闻表,求栏目点击率在前3位的新闻。商品表,求各类别销售额在前10位的商品。select*from(selectsc.s_id,sc.s_name,sub_name,sc.score,dense_rank()over(partitionbysub_nameorderbys

5、coredesc)名次fromt_scoresc)xwherex.名次<=2S_IDS_NAMESUB_NAMESCORE名次4杨过JAVA90.0014杨过Oracle77.0012李四Oracle77.0013张三丰Oracle0.0025mikec++80.0013张三丰数学 12李四数学80.0023张三丰体育120.0011张三语文80.0012李四语文50.002·查询各同学总分selects_id,s_name,sum(score)sum_scorefromt_scoregroupbys_id,s_nameS_IDS_NAMESUM_SCORE1张三

6、80.002李四207.003张三丰130.004杨过167.005mike80.00·根据总分查询各同学名次selectx.*,rank()over(orderbysum_scoredesc)名次from(selects_id,s_name,sum(score)sum_scorefromt_scoregroupbys_id,s_name)xS_IDS_NAMESUM_SCORE名次2李四207.0014杨过167.0023张三丰130.0031张三80.0045mike80.004语法:rank()over(orderby排序字段顺序)rank()over(pa

7、rtitionby分组字段orderby排序字段顺序)1.顺序:asc

8、desc名次与业务相关:示例:找求优秀学员:成绩:降序迟到次数:升序2.分区字段:根据什么字段进行分区。问题:分区与分组有什么区别?·分区只是将原始数据进行名次排列(记录数不变),·分组是对原始数据进行聚合统计(记录数变少,每组返回一条),注意:聚合。脚本:createtableT_SCORE(AUTOIDNUMBERprimarykey,S_IDNUMBER(3),S_NAMECHAR(8)notnull,SUB_NAMEVARCHAR2(20),SCORENUMBER(10,2));ins

9、ertin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。