`
benx
  • 浏览: 276202 次
  • 性别: 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中的分析函数详解

    其中,Oracle的分析函数是其强大的特性之一,它允许用户在单个SQL查询中执行复杂的分析操作,而无需使用子查询或者自连接。这篇文档将深入探讨Oracle中的分析函数,帮助你更好地理解和利用这一功能。 一、什么是...

    ORACLE 常用分析函数

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

    分析函数详细解析

    ### 分析函数详细解析 #### 一、概述 ##### 1.1 什么是分析函数 随着信息技术的发展,企业对数据的依赖程度日益增加。在信息化初期,数据收集成为了首要任务,因为“无数据,不真实”的理念深入人心。然而,随着...

    ORACLE分析函数教程

    ### Oracle分析函数详解 #### 一、Oracle分析函数概述 Oracle分析函数是在处理大量数据时极为有用的一套工具,主要用于在线分析处理(OLAP)场景。这类函数可以在多个级别上进行数据聚合,并支持复杂的排序、分组...

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

    Oracle 分析函数(用法+实例) Oracle 分析函数是 Oracle 8.1.6 版本中引入的高级应用,属于 Oracle 的一大亮点。分析函数可以分为四大类:排名函数、聚合函数、行比较函数和统计函数。下面将对分析函数的原理、...

    分析函数使用.pdf

    ### Oracle分析函数简介与应用 #### 一、引言 在Oracle 8i版本中引入了一系列新的分析函数,这些函数极大地增强了SQL查询的能力,并且在处理复杂的数据分析任务时提供了更为简便、高效的解决方案。本文旨在介绍...

    ORACLE分析函数大全

    Oracle分析函数是数据库管理系统Oracle中的一个强大特性,它允许用户在SQL查询中执行复杂的分析操作。分析函数在处理报表和数据迁移任务时尤其有用,因为它们可以基于分组计算聚合值,并为每个分组返回多行,而不...

    oracle分析函数全面解析

    Oracle分析函数是数据库管理系统Oracle中的一种高级查询工具,主要用于处理复杂的报表统计和数据分析。它们在OLAP(在线分析处理)系统中尤其重要,因为这类系统往往需要处理大量数据并进行复杂的聚合计算,而分析...

    Oracle分析函数.pdf

    Oracle分析函数是Oracle数据库提供的用于数据分析的一组SQL扩展,它们能够对一组数据执行计算,并返回一组结果,这组结果通常会有一个多行的集合。与聚合函数不同,分析函数不会把多行聚合成单一结果,而是在原有...

    oracle 9i 分析函数参考手册.rar

    Oracle 9i 分析函数是数据库查询中一种强大的工具,它们允许在单个查询中对一组行进行聚合操作,同时保留原始行的细节。在Oracle数据库系统中,分析函数为数据分析师和数据库管理员提供了深入洞察数据的能力,尤其在...

    ORACLE_分析函数大全

    Oracle分析函数是数据库管理系统Oracle中的一种高级SQL特性,它们在数据处理和分析中扮演着重要角色。分析函数允许用户在结果集的每一行上执行计算,不仅考虑当前行,还考虑了同一组内的其他行。这与传统的聚合函数...

    Oracle分析函数详解.doc

    Oracle分析函数是数据库管理系统Oracle中的一种高级查询工具,主要用于处理多行数据并返回与每一行相关的聚合信息。这些函数在在线分析处理(OLAP)环境中特别有用,因为它们能够对数据进行复杂的分析,例如计算累计...

    ORACLE常用分析函数说明

    ORACLE 常用分析函数说明 Oracle 分析函数从 8.1.6 版本开始提供,是一种计算基于组的聚合值的函数。它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数是分析函数工作的...

    Oracle10gR2分析函数(中英对照版).pdf

    从给定的文件信息来看,主要讨论的是Oracle 10g R2中的分析函数,这是一种在数据库查询中处理复杂数据汇总需求的高级功能。分析函数允许用户基于一组数据执行复杂的计算,而不仅仅是简单的聚合(如SUM,AVG等),...

    Oracle分析函数使用总结

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

    转帖--oracle分析函数+PLSQL小结

    Oracle分析函数是数据库查询中的一个强大工具,它们在处理数据集时提供了高级的聚合功能,可以对一组行进行计算,并返回单个值或一组值。分析函数与聚合函数(如SUM, AVG, COUNT等)类似,但有显著的区别:聚合函数...

    分析函数案例

    在数据库管理和数据分析领域,分析函数(Analytic Functions)是一种强大的工具,用于处理多行数据集并返回基于分组或排序的计算结果。这些函数能够帮助我们进行复杂的统计分析,而无需借助子查询或者自连接。这里...

    matlab时频分析函数箱

    本资源“matlab时频分析函数箱”提供了一系列专门用于时频分析的函数和代码,帮助用户更好地理解和应用时频理论。 时频分析的主要目的是克服经典傅立叶变换的局限性,即无法同时获得信号的时域和频域信息。在MATLAB...

Global site tag (gtag.js) - Google Analytics