oracle 分析函式 排序值分析函式

2022-09-17 05:33:11 字數 1981 閱讀 2765

一、問題描述

查詢列表時,我們有時需要對查詢結果依據某個字段進行排名。

如果每條記錄在排序欄位上都不相同,我們可以將原查詢作為乙個檢視,查詢其rownum,便可以實現簡單排序,例如:

但是,很多時候我們想用來排序的字段都是有重複值的,此時可能需要將值相同的記錄名詞並列,那麼我們就需要用到oracle的分析函式了。

二、解決

1.排序字段相同的名次並列,且所有名次連續

3000元的員工有兩個,他們的名詞並列,且下乙個使用者的名詞連續計數(區別於2)

2.排序字段相同的名次並列,且下乙個名次是跳躍排序的,比如,有兩個第二名時,下乙個就是第四名

三、其他

有時,我們需要將不同部門下的員工進行排名,此時,我們需要使用

row_number() over(partition by column1 order

by column2)

按照column1分組,然後在組內,按照column2排序。

四、擴充套件

需求:統計使用者簽到排名

每個使用者每次簽到生成一條資料,統計每個使用者簽到的總次數然後排名,為使用者顯示簽到排名。

1.連續排名,相同次數的使用者名次並列

2.不連續排名

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

oracle 分析函式OVER

分析函式用於計算基於組的某種聚合值,它和聚合函式的不同之處是 對於每個組返回多行,而聚合函式對於每個組只返回一行。over over order by.與over partition by.之間的區別 over order by.用在聚合函式 max sun 後面,可返回根據排序結果進行統計到當前行...