Oracle分析函数简介:排序

Oracle常用的用于排序的分析函数有3种,rank()、dense_rank()、row_number();

测试表如下:

1、rank() 跳跃式排名

with temp as

(

select t_id,t_age, rank() over(order by t_age desc) sec  from aaa

)

select * from temp

--where sec=1--,加上此过滤条件,即可找出排名为1的记录

如果指定分组的话,如下:

with temp as

(

select t_id,t_age, rank() over(partition by t_id order by t_age desc) sec  from aaa

)

select * from temp

--where sec=1--每组里排名为1的

2、dense_rank() 正常式(非跳跃式)排名

with temp as

(

select t_id,t_age, dense_rank() over(order by t_age desc) sec  from aaa

)

select * from temp

--where sec=1

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2025-01-30 03:02:43

Oracle分析函数简介:排序的相关文章

Oracle开发之分析函数简介Over用法_oracle

一.Oracle分析函数简介: 在日常的生产环境中,我们接触得比较多的是OLTP系统(即Online Transaction Process),这些系统的特点是具备实时要求,或者至少说对响应的时间多长有一定的要求:其次这些系统的业务逻辑一般比较复杂,可能需要经过多次的运算.比如我们经常接触到的电子商城. 在这些系统之外,还有一种称之为OLAP的系统(即Online Aanalyse Process),这些系统一般用于系统决策使用.通常和数据仓库.数据分析.数据挖掘等概念联系在一起.这些系统的特点

Oracle分析函数、多维函数和Model函数的简要说明

以下代码均经过测试,可直接运行 Oracle分析函数.多维函数和Model函数简要说明,主要针对BI报表统计,不一定很全面,但对BI应用场景做了少许说明 --创建一张销售数量表,数据趋势是递增的 CREATE TABLE ComputerSales AS SELECT 120+TRUNC(rn/12)+ROUND(DBMS_RANDOM.VALUE(1,10)) SalesNumber FROM ( SELECT level,ROWNUM rn FROM DUAL CONNECT BY ROWN

ORACLE分析函数(2)

下面,我们来解析一下分析函数的语法格式(语法格式图请参照:http://blog.csdn.net/yidian815/article/details/12709223). 函数名称 对it人士来时,再简单不过的东西了,不做描述. 函数参数: 分析函数通常会具有0-3个参数. 分区子句: 通过分区子句,可以对记录集进行分区,然后针对每个分区分别进行统计运算.在分析函数中,使用分区子句不必使用()将子句包围起来.在一个查询当中,我们可以使用多个分析函数,每个分析函数可以使用独立的分区规则.如果没有

常用Oracle分析函数大全_oracle

Oracle的分析函数功能非常强大,工作这些年来经常用到.这次将平时经常使用到的分析函数整理出来,以备日后查看. 我们拿案例来学习,这样理解起来更容易一些. 1.建表 create table earnings -- 打工赚钱表 ( earnmonth varchar2(6), -- 打工月份 area varchar2(20), -- 打工地区 sno varchar2(10), -- 打工者编号 sname varchar2(20), -- 打工者姓名 times int, -- 本月打工次

Oracle Spatial 简介

oracle Oracle Spatial 简介:        首先,Oracle 支持自定义的数据类型,你可以用数组,结构体或者带有构造函数,功能函数的类来定义自己的对象类型.这样的对象类型可以用于属性列的数据类型,也可以用来创建对象表.而Oracle Spatial也正是基于此种特性所开发的一套空间数据处理系统.        Spatial 的自定义数据类型有很多,都在MDSYS方案下,经常使用的是SDO_GEOMETRY类型.SDO_GEOMETRY表示一个几何对象,可以是点.线.面.

Oracle分析函数概述

Oracle分析函数概述 Oracle中的分析函数和聚合函数相似,但是对于每一组记录,无论 多少行,聚合函数只返回一行值,而分析函数对其中每一行记录都返回值.这一组记录,称 为分析函数的一个(WINDOW),窗口决定了要处理数据的范围,该范围在物理上可以由指定 的行数来确定,或者在逻辑上由相对偏移量来确定.分析函数总是在除了ORDER BY之外的其 他子句运算后才执行的,所以它不能出现在where.group by等子句中,只能出现在select列 表和order by子句中. 准备测试数据 在

ORACLE分析函数(8) WIDTH-BUCKET

WIDTH-BUCKET会根据参数设置,返回当前记录所属的bucket number.语法格式如下:       WIDTH_BUCKET(expression, minval expression, maxval expression, num buckets)        第一个参数,为某数字或者日期表达式:第二个参数为某范围的下限:第三个参数为某范围的上限:第四个参数为对某范围进行等值划分bucket的数量.如 WIDTH_BUCKET(expression, 0, 2000, 4),会

ORACLE分析函数(5) 其他

1.除了使用数字来指定窗口范围,我们还可以使用日期类型,如: 2.lead和lag,返回当前窗口中与当前记录距离为n的记录.lag为向前取记录,lead为向后取记录 SELECT prod_id, lag(prod_list_price,1) over(order by prod_id) pre_1, lag(prod_list_price,2) over(order by prod_id) pre_2, prod_list_price, lead(prod_list_price,1) over

ORACLE分析函数(1)

分析函数式ORACLE提供的用来进行数据统计的强有力工具,与我们常用的聚合函数具有一些相似性,但又完全不同.聚合函数,首先会将数据进行分组,然后对每一组数据进行运算,如求和sum,求平均AVG等,对于聚合函数,每一个分组返回一条数据结果行.分析函数,同样也会对数据进行求和或者求平均等运算,但是,分析函数计算的基础并不是分组,而是窗口,而且分析函数根据每条记录会返回一个处理结果. 首先,看一下下面的例子: SQL> select prod_subcategory_id,1 from product