摘要:在上一篇里,主要窗口函數的基本用法。在這一篇中,我們來看看除了聚合函數之外還支持哪些窗口函數吧。注意到雖然為和的員工,相同,但返回的行號仍然連續。返回分組后的行號,但和和函數都不同,當對比值重復時行號重復但不間斷。
在上一篇里,主要窗口函數的基本用法。
在這一篇中,我們來看看postgresql除了聚合函數之外還支持哪些窗口函數吧。
row_number()
返回分組后的行號。注意到雖然emp_no為9和11的員工,salary相同,但row_number返回的行號仍然連續。
rank()
返回分組后的行號,但和row_number不同的是,如果對比值重復時,行號重復且會發生間斷。
dense_rank()
返回分組后的行號,但和row_number和rank函數都不同,當對比值重復時行號重復但不間斷。
percent_rank()
返回當前行的相對排名,計算在分組中的比例(rank-1)/(總記錄數-1),需要對比rank函數理解。
cume_dist()
返回當前行的相對排名:(前面的行數或與當前行相同的行數)/(總行數)
ntile(分組數量)
讓所有記錄盡可以的均勻分布。
lag(value any [, offset integer [, default any ]])
返回偏移值,offset integer是偏移值,正數時前值,負數時后值,沒有取到值時用default代替,默認偏移量為0, 默認值為null
lead(value any [, offset integer [, default any ]])
返回偏移值,offset integer是偏移值,正數時取后值,負數時取前值,沒有取到值時用default代替
first_value(value any)
返回分組第一個值
last_value(value any)
返回分組最后一個值
nth_value(value any, nth integer)
返回分組的第n個值,如果沒有則為null
以上就是postgres支持的窗口函數,大家可以根據需要選擇使用,特別在寫復雜查詢時,選擇合適的窗口函數可以起到意想不到的效果。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38991.html
摘要:在上一篇里,主要窗口函數的基本用法。在這一篇中,我們來看看除了聚合函數之外還支持哪些窗口函數吧。注意到雖然為和的員工,相同,但返回的行號仍然連續。返回分組后的行號,但和和函數都不同,當對比值重復時行號重復但不間斷。 在上一篇里,主要窗口函數的基本用法。 在這一篇中,我們來看看postgresql除了聚合函數之外還支持哪些窗口函數吧。 row_number() 返回分組后的行號。注意到雖...
摘要:和聚合函數類似,窗口函數也是計算一些行集合多個行組成的集合,我們稱之為窗口的數據。但如果這些窗口函數的作用是一樣的,那分開寫多個很煩人,也容易出錯。 聚合函數大家都用過,像sum,min,avg等,一般是和group by配合使用。和聚合函數類似,窗口函數也是計算一些行集合(多個行組成的集合,我們稱之為窗口window frame)的數據。但和常規的聚集函數不同的是,窗口函數不會將參與...
摘要:和聚合函數類似,窗口函數也是計算一些行集合多個行組成的集合,我們稱之為窗口的數據。但如果這些窗口函數的作用是一樣的,那分開寫多個很煩人,也容易出錯。 聚合函數大家都用過,像sum,min,avg等,一般是和group by配合使用。和聚合函數類似,窗口函數也是計算一些行集合(多個行組成的集合,我們稱之為窗口window frame)的數據。但和常規的聚集函數不同的是,窗口函數不會將參與...
閱讀 1177·2021-11-23 10:10
閱讀 1499·2021-09-30 09:47
閱讀 887·2021-09-27 14:02
閱讀 2967·2019-08-30 15:45
閱讀 3020·2019-08-30 14:11
閱讀 3610·2019-08-29 14:05
閱讀 1820·2019-08-29 13:51
閱讀 2206·2019-08-29 11:33