oracle 分析函式2

2022-08-11 05:27:12 字數 1295 閱讀 5926

(rank, dense_rank, row_number)

①row_number:

12345

row_number函式返回乙個唯一的值,當碰到相同資料時,排名按照記錄集中記錄的順序依次遞增。

②dense_rank:

12223

dense_rank函式返回乙個唯一的值,除非當碰到相同資料時,此時所有相同資料的排名都是一樣的。

③rank:

12225

rank函式返回乙個唯一的值,除非遇到相同的資料時,此時所有相同資料的排名是一樣的,

同時會在最後一條相同記錄和下一條不同記錄的排名之間空出排名。

--①對所有客戶按訂單總額進行排名

--②按區域和客戶訂單總額進行排名

--③找出訂單總額排名前13位的客戶

--④找出訂單總額最高、最低的客戶

--⑤找出訂單總額排名前25%的客戶

--篩選排名前12位的客戶, table : user_order

--1.對所有客戶按訂單總額進行排名, 使用rownum , rownum = 13,14 的資料跟 12 的資料一樣, 但是被漏掉了

select rownum, tmptb.*

from

(select

*from user_order order

by customer_sales desc

) tmptb

where rownum <=12;

--2.按區域和客戶訂單總額進行排名 rank, dense_rank, row_number

select

region_id, customer_id,

sum(customer_sales) total,

rank()

over(partition by region_id order

bysum(customer_sales) desc

) rank,

dense_rank()

over(partition by region_id order

bysum(customer_sales) desc

) dense_rank,

row_number()

over(partition by region_id order

bysum(customer_sales) desc

) row_number

from

user_order

group

by region_id, customer_id;

Oracle分析函式學習筆記2

環境 windows 2000 server oracle8.1.7 sql plus 目的 以oracle自帶的scott模式為測試環境,主要通過試驗體會分析函式的用法。2.rank dense rank 的使用 原表資訊 sql break on deptno skip 1 為效果更明顯,把不同...

oracle分析函式

oracle分析函式 sql plus環境 1 group by子句 create test table and insert test data.create table students id number 15,0 area varchar2 10 stu type varchar2 2 sc...

Oracle 分析函式

分析函式提供了跨行,多層級聚合引用值的能力,並且可以在資料子集中控制排序粒度。與聚合函式不同,分析函式並不將結果集聚合較少的行。分析函式是在主查詢結果的基礎上進行一定的分析,如分部門彙總,分部門求均值等等。分析函式的模式 function arg1,arg2,arg3.argn over parti...