`
沧海一小粟
  • 浏览: 25099 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle对查询结果进行排名

阅读更多

要解决的问题:我们想对查询出来的数据进行排名统计,但又不想在源数据中插入相应的字段。

解决方法:以oracle中scott用户下的emp表为例演示

对所有员工的工资进行统计排名,查询语句如下:

select empno,sal,rank() over(order by sal desc) as sal_rank from emp;
结果如下图:



select empno,sal,dense_rank() over(order by sal desc) as sal_rank from emp;
结果如下图:


以上两种情况演示了不同排名算法时对结果的操作,接下来考虑这么一种情况:对指定部门员工的薪水进行排名统计。

解决方法如下:

select empno,deptno,sal,rank() over(partition by deptno order by sal desc) as sal_rank from emp;
结果如下图:


rank:处理等值排名时占位显示;
dense_rank:处理等值排名时不占位;
partition by column_name:指定在某范围内进行排名;
over(order by column_name):指定以哪个字段进行排名统计。
  • 大小: 61.9 KB
  • 大小: 52.5 KB
  • 大小: 54.8 KB
2
1
分享到:
评论

相关推荐

    oracle查看执行最慢与查询次数最多的sql语句

    在Oracle数据库管理中,了解SQL语句的执行性能和频率对于系统优化至关重要。本文将详细介绍如何查看Oracle数据库...希望本文提供的示例和方法对你的工作有所帮助,如果你在实际操作中有任何疑问,欢迎进行讨论和交流。

    oracle 复杂查询语句的使用

    子查询是嵌套在主查询中的查询,它可以在`SELECT`,`FROM`,`WHERE`,`HAVING`子句中使用,以提供临时的结果集。在`WHERE`子句中,子查询可以作为条件的一部分,如`IN`,`EXISTS`等操作符的参数。Oracle支持最多16层...

    oracle常用经典sql查询.rar

    此外,存在一些特定于Oracle的SQL扩展,如游标(Cursor)用于迭代处理查询结果,PL/SQL(Oracle的Procedural Language/SQL)是Oracle特有的过程化编程语言,可编写存储过程、触发器等数据库对象,增强数据库功能和...

    oracle表连接和子查询实例

    - **表连接**:外部`JOIN`语句将`emp`表与子查询结果进行连接,条件是员工的薪资等于其所在部门的最大薪资,并且部门编号也匹配。 - **应用场景**:用于找出每个部门薪资最高的员工。 #### 二、部门平均薪资对应的...

    oracle对表的高级查询题

    5. **排序(ORDER BY)**:对查询结果进行升序或降序排序。例如,按照薪水降序排列"scott"用户的所有员工。 ```sql SELECT * FROM scott.employees ORDER BY salary DESC; ``` 6. **窗口函数(Window Functions)*...

    ORACLE SQL :经典查询练手系列文章汇总.pdf

    3. **分组与排序**:使用`GROUP BY`对查询结果进行分组,结合`HAVING`子句进行条件筛选;使用`ORDER BY`对结果进行排序。例如,按部门编号分组并显示各部门最高薪资:`SELECT DEPTNO, MAX(SAL) FROM scott.emp GROUP...

    oracle练习题39题(附个人编码答案)

    - Oracle的查询结果可以按照指定的列进行排序,如`ORDER BY id`或`ORDER BY score DESC`。 总结以上,本题涉及了Oracle SQL的查询、数据操作、窗口函数的应用以及PL/SQL中的自定义函数。通过这些知识,可以解决...

    ORACLE技巧 - 不同记录集的横向合并

    1. **编程存储过程返回游标**:这种方式允许开发者在存储过程中对两批数据进行逐一比对,并将结果返回给调用者。这种方式灵活性高,但开发成本相对较大。 2. **使用临时表**:通过创建临时表来存储比较后的结果,...

    ORACLE高级查询..各种各样的查法..重基础到深入

    在Oracle数据库中,高级查询是SQL语言的重要组成部分,它涵盖了多表联接、子查询、集合操作、分组与聚合函数、窗口函数等复杂查询技术。以下是对这些知识点的详细说明: 1. **多表联接(JOIN)**:在上述示例中,...

    Oracle查询中OVER (PARTITION BY ..)用法

    Oracle查询中的`OVER (PARTITION BY ..)`是一个窗口函数,它允许我们在数据集上执行计算,但不是在整个结果集上,而是针对每个分区。这部分功能非常强大,可以用于复杂的分析和排序任务,尤其是在处理分组数据时。在...

    ORACLE-select-query.rar_oracle_多表查询

    在Oracle数据库系统中,SQL(结构化查询语言)是用于管理关系型数据库的主要工具,而查询语句则是SQL的核心组成部分。本压缩包“ORACLE-select-query.rar”专注于讲解Oracle数据库中的查询技术,特别是多表查询、子...

    Oracle_分析函数

    Oracle分析函数是Oracle数据库提供的一个高级SQL特性,它允许在查询结果集中进行复杂的数据分析。分析函数通过使用OVER子句,可以对数据进行分区、排序以及定义窗口大小等功能。它们在数据仓库、报告和在线事务处理...

    oracle 全文检索实现

    Oracle 全文检索实现 Oracle 全文检索实现是通过 Lucene 实现的,全文检索是指在数据库中检索特定关键字的记录。...同时,对于用户并发查询,需要解决并发查询,以及是否对查询结果进行缓存的问题。

    Oracle SQL 官方教程

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

    oracle处理的类型 oracle行排序

    当我们在查询语句(如SELECT)中添加ORDER BY,Oracle会根据指定的列或表达式对结果集进行升序(ASC,默认)或降序(DESC)排序。例如: ```sql SELECT * FROM table_name ORDER BY column_name ASC/DESC; ``` ...

    mastering oracle sql

    物化视图可以预先计算和存储查询结果,提高数据访问速度;索引则加速对表中数据的查找;触发器在特定数据库事件发生时自动执行代码,而存储过程是预编译的SQL语句集合,可以封装复杂的业务逻辑。 此外,"mosql2_...

    Oracle_SQL学习笔记

    `MINUS`返回第一个查询结果中不包含在第二个查询结果中的记录,而`INTERSECT`返回两个查询结果的交集,即两个查询中都存在的记录。 4. **ORDER BY NULLS LAST**:在排序时,`NULLS LAST`选项确保NULL值在排序结果的...

    oracle SQL语法大全

    GROUP BY允许按一个或多个列对结果进行分类,而HAVING则是在分组后对组应用条件,与WHERE类似但不作用于单行。例如`GROUP BY column1 HAVING aggregate_function(column2) condition;` JOIN操作用于合并两个或更多...

    oracle日积月累

    Oracle分析函数如RANK(), DENSE_RANK(), ROW_NUMBER()用于对数据进行排名;Lag()和Lead()用于获取当前行之前或之后的值;Sum()和Avg()等在分组基础上进行计算。例如,`analytic_function: RANK() OVER (PARTITION ...

    oracle 学习笔记

    1. Order By子句用于对查询结果进行排序。 2. 排序可以使用ASC(升序)和DESC(降序)关键字指定。 3. Null值在排序中的处理依据数据库的具体实现可能有所不同。 4. Order By子句后可以跟字段名、列的序号或表达式等...

Global site tag (gtag.js) - Google Analytics