Oracle分析函数 — rank, dense_rank, row_number用法
本文通过例子演示了Oracle分析函数 —— rank, dense_rank, row_number的用法。
//首先建score表
create table score(
course nvarchar2(20),
stu_name nvarchar2(20),
score number(2));
//插入数据
insert into score values ('Math','Tough1',95);
insert into score values ('Math','Tough2',93);
insert into score values ('Math','Tough3',94);
insert into score values ('Math','Tough4',95);
insert into score values ('Math','Tough5',94);
//查看
select * from score order by score desc;
| COURSE | STU_NAME | SCORE |
| Math | Tough1 | 95 |
| Math | Tough4 | 95 |
| Math | Tough5 | 94 |
| Math | Tough3 | 94 |
| Math | Tough2 | 93 |
- rank() over
按course分组,并按score排名。
若score相同,rank会跳跃式排名——例如有两个第一名,接下来直接是第三名,没有第二名。
select course, stu_name, score,
rank() over(partition by course order by score desc) "RANK"
from score;
| COURSE | STU_NAME | SCORE | RANK |
| Math | Tough1 | 95 | 1 |
| Math | Tough4 | 95 | 1 |
| Math | Tough5 | 94 | 3 |
| Math | Tough3 | 94 | 3 |
| Math | Tough2 | 93 | 5 |
- dense_rank() over
按course分组,并按score排名。
若score相同,dense_rank不会跳跃式排名——例如有两个第一名,接下来是第二名。
select course, stu_name, score,
dense_rank() over(partition by course order by score desc) "RANK"
from score;
| COURSE | STU_NAME | SCORE | RANK |
| Math | Tough1 | 95 | 1 |
| Math | Tough4 | 95 | 1 |
| Math | Tough5 | 94 | 2 |
| Math | Tough3 | 94 | 2 |
| Math | Tough2 | 93 | 3 |
- row_number() over
按course分组,并按score排名。
若score相同,row_number排名也不一样。
select course, stu_name, score,
row_number() over(partition by course order by score desc) "RANK"
from score;
| COURSE | STU_NAME | SCORE | RANK |
| Math | Tough1 | 95 | 1 |
| Math | Tough4 | 95 | 2 |
| Math | Tough5 | 94 | 3 |
| Math | Tough3 | 94 | 4 |
| Math | Tough2 | 93 | 5 |
Oracle分析函数 — rank, dense_rank, row_number用法的更多相关文章
- [转]oracle分析函数Rank, Dense_rank, row_number
oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number) 目录 ==================== ...
- oracle分析函数Rank, Dense_rank, row_number
http://www.cnblogs.com/wuyisky/archive/2010/02/24/oracle_rank.html 目录=============================== ...
- oracle sql rank dense_rank row_number fisrt last
測試表emp
- 【DB2】DB2中rank(),dense_rank(),row_number()的用法
1.准备测试数据 DROP TABLE oliver_1; ),SUB_NO ),SCORE int); ,,); ,,); ,,); ,,); ,,); ,,); 2.详解rank(),dense_ ...
- Oracle 的开窗函数 rank,dense_rank,row_number
1.开窗函数和分组函数的区别 分组函数是指按照某列或者某些列分组后进行某种计算,比如计数,求和等聚合函数进行计算. 开窗函数是指基于某列或某些列让数据有序,数据行数和原始数据数相同,依然能曾现个体数据 ...
- rank,dense_rank,row_number使用和区别
rank,dense_rank,row_number区别 一:语法(用法): rank() over([partition by col1] order by col2) dense ...
- Oracle分析函数-keep(dense_rank first/last)
select * from criss_sales where dept_id = 'D02' order by sale_date ; 此时有个新需求,希望查看部门 D02 内,销售记录时间最早,销 ...
- [z]一个SQL语句分清楚RANK(),DENSE_RANK(),ROW_NUMBER()三个排序的不同
转自:http://blog.csdn.net/s630730701/article/details/51902762 在SCOTT用户下,执行下面SQL; SELECT s.deptno,s.ena ...
- rank() | dense_rank() | row_number() over(PARTITION BY sex order by age desc ) 的区别
1.row_num() over()函数:根据某个字段排序后编号1,2,3.. select *,ROW_NUMBER() over ( order by majorid) as numfrom St ...
随机推荐
- PHP代码加密 -- php_strip_whitespace函数,去掉源代码所有注释和空格并显示在一行
<?php function stripCommentAndWhitespace($path = '') { if (empty($path)) { echo '请指定要操作的文件路径'; re ...
- WIN2003服务器IIS下如何开启GZIP压缩
在上一篇文章黑客流谈到了关于网页打开速度对SEO的影响,其中提到了网页开启Gzip压缩的好处,接下来我来和大家分享一下WINDOWS系统IIS服务器下如何开启Gzip压缩. 首先我们来了解一下什么是G ...
- [转]How to convert IP address to country name
本文转自:http://www.codeproject.com/Articles/28363/How-to-convert-IP-address-to-country-name Download ...
- poj 1848 树形dp
思路:表示我很弱,这个想不出dp方程,参考网上代码 #include<iostream> #include<algorithm> #include<cstring> ...
- BZOJ 2763
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2073 Solved: 790[Submit][Statu ...
- SQLite的查询
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- Java Concurrency - Callable & Future
One of the advantages of the Executor framework is that you can run concurrent tasks that return a r ...
- Springmvc+uploadify实现文件带进度条批量上传
网上看了很多关于文件上传的帖子,众口不一,感觉有点乱,最近正好公司的项目里用到JQuery的uploadify控件做文件上传,所以整理下头绪,搞篇文档出来,供亲们分享. Uploadify控件的主要优 ...
- Slickflow.NET 开源工作流引擎基础介绍(四) -- 多数据库支持实现
前言:引擎作为中间件集成到用户的项目里面去,针对用户的数据库类型,需要作出SQL部分的分别实现.引擎默认数据库为MS SQLSERVER,同时也支持ORACLE, MYSQL, KINGBASE等不同 ...
- HDOJ2020绝对值排序
绝对值排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...