(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...