--row_number()
SELECT d.department_name,
e.last_name,
e.salary,
row_number() OVER(PARTITION BY e.department_id ORDER BY e.salary) as drank
FROM employees e, departments d
WHERE e.department_id = d.department_id;
--DENSE_RANK()
SELECT d.department_name,
e.last_name,
e.salary,
DENSE_RANK() OVER(PARTITION BY e.department_id ORDER BY e.salary) as drank
FROM employees e, departments d
WHERE e.department_id = d.department_id;
--RANK()
SELECT d.department_name,
e.last_name,
e.salary,
RANK() OVER(PARTITION BY e.department_id ORDER BY e.salary) as drank
FROM employees e, departments d
WHERE e.department_id = d.department_id
结果分别是:
row_number
1 Administration Whalen 4400.00 1
2 Marketing Fay 6000.00 1
3 Marketing Hartstein 13000.00 2
4 Purchasing Colmenares 2500.00 1
5 Purchasing Himuro 2600.00 2
6 Purchasing Tobias 2800.00 3
7 Purchasing Baida 2900.00 4
8 Purchasing Raphaely 11000.00 5
9 Purchasing Khoo 11000.00 6
10 Human Resources Mavris 6500.00 1
11 Shipping Olson 2100.00 1
12 Shipping Markle 2200.00 2
13 Shipping Philtanker 2200.00 3
14 Shipping Landry 2400.00 4
15 Shipping Gee 2400.00 5
16 Shipping Marlow 2500.00 6
17 Shipping Perkins 2500.00 7
18 Shipping Sullivan 2500.00 8
19 Shipping Vargas 2500.00 9
20 Shipping Patel 2500.00 10
21 Shipping Matos 2600.00 11
22 Shipping OConnell 2600.00 12
23 Shipping Grant 2600.00 13
24 Shipping Mikkilineni 2700.00 14
DENSE_RANK
1 Administration Whalen 4400.00 1
2 Marketing Fay 6000.00 1
3 Marketing Hartstein 13000.00 2
4 Purchasing Colmenares 2500.00 1
5 Purchasing Himuro 2600.00 2
6 Purchasing Tobias 2800.00 3
7 Purchasing Baida 2900.00 4
8 Purchasing Raphaely 11000.00 5
9 Purchasing Khoo 11000.00 5
10 Human Resources Mavris 6500.00 1
11 Shipping Olson 2100.00 1
12 Shipping Markle 2200.00 2
13 Shipping Philtanker 2200.00 2
14 Shipping Landry 2400.00 3
15 Shipping Gee 2400.00 3
16 Shipping Marlow 2500.00 4
17 Shipping Perkins 2500.00 4
18 Shipping Sullivan 2500.00 4
19 Shipping Vargas 2500.00 4
20 Shipping Patel 2500.00 4
21 Shipping Matos 2600.00 5
22 Shipping OConnell 2600.00 5
23 Shipping Grant 2600.00 5
24 Shipping Mikkilineni 2700.00 6
RANK
1 Administration Whalen 4400.00 1
2 Marketing Fay 6000.00 1
3 Marketing Hartstein 13000.00 2
4 Purchasing Colmenares 2500.00 1
5 Purchasing Himuro 2600.00 2
6 Purchasing Tobias 2800.00 3
7 Purchasing Baida 2900.00 4
8 Purchasing Raphaely 11000.00 5
9 Purchasing Khoo 11000.00 5
10 Human Resources Mavris 6500.00 1
11 Shipping Olson 2100.00 1
12 Shipping Markle 2200.00 2
13 Shipping Philtanker 2200.00 2
14 Shipping Landry 2400.00 4
15 Shipping Gee 2400.00 4
16 Shipping Marlow 2500.00 6
17 Shipping Perkins 2500.00 6
18 Shipping Sullivan 2500.00 6
19 Shipping Vargas 2500.00 6
20 Shipping Patel 2500.00 6
21 Shipping Matos 2600.00 11
22 Shipping OConnell 2600.00 11
23 Shipping Grant 2600.00 11
24 Shipping Mikkilineni 2700.00 14
结论是:row_number中order列不管是否有重复,number都按序列递增,dense_rank和rank则是roder列有重复,那么number列保持重复,但是dense_rank和rank不同的是rank对于每个重复都会记住,等不重复的时候在加起来,比如
14 Shipping Landry 2400.00 4
15 Shipping Gee 2400.00 4
16 Shipping Marlow 2500.00 6
17 Shipping Perkins 2500.00 6
18 Shipping Sullivan 2500.00 6
19 Shipping Vargas 2500.00 6
20 Shipping Patel 2500.00 6
21 Shipping Matos 2600.00 11
22 Shipping OConnell 2600.00 11
23 Shipping Grant 2600.00 11
1234
分享到:
相关推荐
主要包括分析函数(OVER);分析函数2(Rank, Dense_rank, row_number);分析函数3(Top/Bottom N、First/Last、NTile);窗口函数;报表函数;分析函数总结;26个分析函数;PLSQL开发笔记和小结;分析函数简述 ROW_NUMBER () ...
详解Oracle分析函数,主用于OLAP,以实例讲解分析函数. 如: 排序用Rank, Dense_rank, row_number 1.带空值的排列 2.Top/Bottom N查询 3.First/Last排名查询 4.按层次查询 1.窗口函数简介 2.窗口函数示例-全统计 3....
文档详细介绍了oracle的分析函数,包括功能说明、sql示例等。分析函数功能强大,在报表或数据迁移的时候可能会使用到。分析函数用法看上去有点复杂,最好使用的时候,参考文档
详细解析Oracle分析函数,分析函数为我们提供了一种简单高效的处理方式,在分析函数出现之前,我们必须使用自联查询、子查询或者内联视图,甚至是复杂的存储过程实现的语句,现在只需要一条简单的SQL语句就可以实现...
Oracle分析函数使用总结Oracle分析函数使用总结Oracle分析函数使用总结Oracle分析函数使用总结
关于ORACLE分析函数的教程,教程描述描述清晰
ORACLE 分析函数大全,包含很多关于ORACLE的分析函数,内置函数
分析函数是 Oracle 专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计。本文总结了若干分析函数的使用方式,供大家学习参考,有...
oracle分析函数使用介绍
分析函数是oracle中强大的功能,附件是分析函数学习笔记
Oracle 分析函数详解 1. 自动汇总函数rollup,cube, 2. rank 函数, rank,dense_rank,row_number 3. lag,lead函数 4. sum,avg,的移动增加,移动平均数 5. ratio_to_report报表处理函数 6. first,last取基数的分析函数
Oracle分析函数.pdf,这份资料详细介绍了Oracle分析函数的使用,Oracle分析函数.pdf是一份不错的文档
ORACLE分析函数大全 包括大部分常用的分析函数
ORACLE分析函数.pdf
Oracle分析函数.doc
Scala和Spark大数据分析函数式编程、数据流和机器学习
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。
oracle分析函数(用法+实例),这属于oracle的高级应用。
ORACLE常用分析函数说明,oracle优化
oracle 分析函数全面解析,用于报表统计等方面的高级查询。