`
benx
  • 浏览: 272402 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分析函数

SQL 
阅读更多
   --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

分享到:
评论

相关推荐

    ORACLE 常用分析函数

    主要包括分析函数(OVER);分析函数2(Rank, Dense_rank, row_number);分析函数3(Top/Bottom N、First/Last、NTile);窗口函数;报表函数;分析函数总结;26个分析函数;PLSQL开发笔记和小结;分析函数简述  ROW_NUMBER () ...

    Oracle_详解分析函数

    详解Oracle分析函数,主用于OLAP,以实例讲解分析函数. 如: 排序用Rank, Dense_rank, row_number 1.带空值的排列 2.Top/Bottom N查询 3.First/Last排名查询 4.按层次查询 1.窗口函数简介 2.窗口函数示例-全统计 3....

    ORACLE分析函数大全

    文档详细介绍了oracle的分析函数,包括功能说明、sql示例等。分析函数功能强大,在报表或数据迁移的时候可能会使用到。分析函数用法看上去有点复杂,最好使用的时候,参考文档

    分析函数详细解析

    详细解析Oracle分析函数,分析函数为我们提供了一种简单高效的处理方式,在分析函数出现之前,我们必须使用自联查询、子查询或者内联视图,甚至是复杂的存储过程实现的语句,现在只需要一条简单的SQL语句就可以实现...

    Oracle分析函数使用总结

    Oracle分析函数使用总结Oracle分析函数使用总结Oracle分析函数使用总结Oracle分析函数使用总结

    ORACLE分析函数教程

    关于ORACLE分析函数的教程,教程描述描述清晰

    ORACLE 分析函数大全

    ORACLE 分析函数大全,包含很多关于ORACLE的分析函数,内置函数

    Oracle之分析函数.pdf

    分析函数是 Oracle 专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计。本文总结了若干分析函数的使用方式,供大家学习参考,有...

    分析函数使用.pdf

    oracle分析函数使用介绍

    oracle 分析函数学习笔记

    分析函数是oracle中强大的功能,附件是分析函数学习笔记

    Oracle 分析函数.doc

    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分析函数.pdf,这份资料详细介绍了Oracle分析函数的使用,Oracle分析函数.pdf是一份不错的文档

    ORACLE_分析函数大全

    ORACLE分析函数大全 包括大部分常用的分析函数

    ORACLE分析函数.pdf

    ORACLE分析函数.pdf

    Oracle分析函数.doc

    Oracle分析函数.doc

    Scala和Spark大数据分析函数式编程、数据流和机器学习

    Scala和Spark大数据分析函数式编程、数据流和机器学习

    oracle分析函数大全

    Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。

    oracle分析函数(用法+实例)

    oracle分析函数(用法+实例),这属于oracle的高级应用。

    ORACLE常用分析函数说明

    ORACLE常用分析函数说明,oracle优化

    oracle分析函数全面解析

    oracle 分析函数全面解析,用于报表统计等方面的高级查询。

Global site tag (gtag.js) - Google Analytics