`
mamaoyuan625
  • 浏览: 178382 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle按分区排名

阅读更多

--解析函数第二种分区:分区解析

--求部门的收入排名

--解析函数 规律 解析函数() over(partition by 字段 order by 字段)
--在先分区,再字段排序以后,每个区分别进行某种解析计算
SELECT deptno,empno,ename,sal,
       dense_rank() over(PARTITION BY deptno ORDER BY nvl(sal,
0) DESC) x
FROM emp

DEPTNO

EMPNO

ENAME

SAL

X

10

7839

KING

8000

1

10

7782

CLARK

7450

2

10

9000

xiaoming

 

3

20

7369

SMITH

8000

1

20

7788

SCOTT

7000

2

20

7902

FORD

6000

3

20

7566

JONES

5975

4

20

7876

ADAMS

4100

5

30

7698

BLAKE

6850

1

30

7499

ALLEN

5600

2

30

7844

TURNER

5500

3

30

7521

WARD

5250

4

30

7654

MARTIN

5250

4

 

案例

_        各种新闻(娱乐,体育,8挂,军事)的单击率在前3名记录

_        每种图片(计算机类,考试类,文学),销售量在前10名记录

_        每个班的前3名

 

 

行数

--行数解析(比rownum更高效,主要用于分页)
SELECT * FROM (
SELECT deptno,empno,ename,sal,
       row_number() over(ORDER BY nvl(sal,
0) DESC) x
FROM emp) t
WHERE x BETWEEN
5 AND 10;

DEPTNO

EMPNO

ENAME

SAL

X

30

7698

BLAKE

6850

5

20

7902

FORD

6000

6

20

7566

JONES

5975

7

30

7499

ALLEN

5600

8

30

7844

TURNER

5500

9

30

7521

WARD

5250

10

 

分享到:
评论
1 楼 fireinjava 2011-03-03  
非常好用,Thanks!

相关推荐

    Oracle排名函数(Rank)实例详解

    例如,对于"查询各学生科目为Oracle排名(简单排名)"的部分,所有Oracle科目的成绩被按降序排列,杨过和李四都得了77分,所以他们都被分配了名次1,而张三丰得了0分,名次为3。Rank()函数在这里的特性是如果有多行...

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    在Oracle中,可以结合ROWNUM和ORDER BY实现分页查询,或者使用子查询和RANK()函数获取特定排名的记录。 11. **数据安全**: Oracle提供多种安全措施,如用户权限管理、角色、审计和透明数据加密。应合理分配权限,...

    Oracle中的分析函数详解

    1. 分区排名:计算每个部门员工的薪水排名。 ```sql SELECT employee_id, department_id, salary, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) as rank FROM employees; ``` 2. 窗口平均:计算...

    Oracle_SQL学习笔记

    2. **删除表分区数据**:Oracle数据库支持分区表,允许高效管理大表。`ALTER TABLE ... TRUNCATE PARTITION`语句用于删除表的一个特定分区,如`ALTER TABLE masamk.tb_mk_sc_user_mon TRUNCATE PARTITION mk_user_...

    Oracle_分析函数

    通过这些子句,可以对数据进行分组(分区)、排序、定义窗口大小等操作,从而得到每个分区内的累计值、排名、百分比等信息。 - PARTITION BY子句:用于将查询结果集分割成不同的分区,每个分区内的数据相当于一个...

    Oracle_Database_11g_SQL_-_Master_SQL_and_PLSQL_in_the_Oracle_Database

    5. **分区技术**:在11g中,分区功能进一步增强,支持更多的分区策略,如范围、列表、哈希和复合分区,这有助于管理大规模的数据并提高查询性能。 6. **安全管理**:Oracle 11g提供了更细粒度的权限控制和审计功能...

    oracle培训笔记2

    2. 分区函数:如RANK、DENSE_RANK、ROW_NUMBER,用于在分组后的数据中为每一行分配一个唯一的排名。 3. LAG和LEAD函数:向前或向后查看相邻行的数据,常用于分析和预测。 4. FIRST_VALUE和LAST_VALUE函数:获取每个...

    【转】Oracle分析函数简述

    在这个例子中,我们首先按照部门(department_id)进行分区,然后在每个部门内按工资(salary)降序排列,最后为每个部门的每条记录分配一个排名。 了解并熟练使用Oracle分析函数对于优化查询性能、简化数据处理...

    oracle数据库期末考试试题及答案.docx

    **解析**: 在Oracle数据库中,对于已经创建好的分区表,如果需要在第一个分区之前添加新的分区,可以通过拆分分区的方式来实现,即将现有的第一个分区拆分为两个分区。因此,正确答案是C. 拆分分区。 以上是Oracle数据库...

    oracle sql 高级编程

    例如,RANK()、ROW_NUMBER()、DENSE_RANK()和LEAD/LAG函数可以帮助处理排名、行间差异和预览/滞后值等任务。 五、游标和动态SQL 游标允许逐行处理查询结果,这对于交互式操作或循环处理数据非常有用。动态SQL则允许...

    oracle分析函数.doc

    结合`PARTITION BY`和`ORDER BY`,可以实现复杂的分析需求,例如计算每个产品的月度累计销售额,或者按销售额降序排列的排名。 综上所述,Oracle分析函数为开发者提供了强大的数据分析能力,它们在处理大数据集时...

    Oracle SQL 官方教程

    你还将学习如何使用Oracle的内置分析函数(如RANK(), DENSE_RANK(), ROW_NUMBER()等)进行数据排名和分区。 通过007-1-中文.pdf、007-2-中文.pdf和007-3-中文.pdf这三个文档,你可以逐步学习并掌握这些Oracle SQL的...

    Oracle SQL必备参考(PDG)

    2. 聚合函数:除了标准的SUM、COUNT、AVG、MAX和MIN,Oracle还提供了RANK、DENSE_RANK、ROW_NUMBER等排名函数,以及LISTAGG进行字符串连接。 3. 子查询:Oracle SQL允许在查询中嵌套查询,用于比较、筛选或计算。 ...

    oracle数据仓库分析函数汇总

    - `RANK()`: 返回每个行在分区内的排名,如果有相同的值,会跳过排名。 - `DENSE_RANK()`: 类似于`RANK()`,但不跳过排名,相同值会有相同的排名。 - `ROW_NUMBER()`: 给每个行分配一个唯一的数字,无论值是否...

    oracle试题

    5. **分析函数**:用于计算累计排名、移动平均数和报表聚合等操作的是分析函数,所以B.分析是正确选项。 6. **SQL别名**:在SQL语句中,使用AS关键字为计算列生成别名,因此正确答案是C.SELECT ename, sal*12 AS ...

    oracle日积月累

    例如,`analytic_function: RANK() OVER (PARTITION BY column ORDER BY another_column)`将根据指定列排序并为每个分区分配一个唯一的排名。 2. **Oracle函数大全**: Oracle提供了一系列内置函数,如字符串函数...

    搜索引擎全文检索技术 oracle

    为了提高全文检索性能,可以配置索引分区、使用索引存储优化(如Bitmap Indexes)、调整索引刷新频率等。同时,合理的查询设计和SQL优化也是必要的。 9. **监控与维护** Oracle提供了一系列的动态性能视图和管理...

    ORACLE分析函数

    这里,我们首先按`area_code`分组并计算每组的`local_fare`总和,然后使用`RANK()`函数按`local_fare`降序对这些分组进行排名。可以看到,当两个区域的`local_fare`总和相同时,它们会被赋予相同的排名,而下一个...

    ORACLE_OVER函数

    这个查询将为每个部门的员工按工资降序排列,并计算出工资排名。 #### 五、OVER函数的高级用法 ##### 示例4:使用LAG()和LEAD()获取前后行数据 LAG()和LEAD()函数可以获取当前行前面或后面一行的数据。 ```sql ...

    oracle分析函数,窗口函数,报表函数

    - **ORDER BY**:在每个分区内部按指定的列排序,这对于计算排名或分组累计非常有用。 - **ROWS BETWEEN**:定义窗口的范围,如`ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`表示包含当前行及其之前的所有行...

Global site tag (gtag.js) - Google Analytics