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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值