摘要:在上一篇里,主要窗口函數(shù)的基本用法。在這一篇中,我們來看看除了聚合函數(shù)之外還支持哪些窗口函數(shù)吧。注意到雖然為和的員工,相同,但返回的行號(hào)仍然連續(xù)。返回分組后的行號(hào),但和和函數(shù)都不同,當(dāng)對(duì)比值重復(fù)時(shí)行號(hào)重復(fù)但不間斷。
在上一篇里,主要窗口函數(shù)的基本用法。
在這一篇中,我們來看看postgresql除了聚合函數(shù)之外還支持哪些窗口函數(shù)吧。
row_number()
返回分組后的行號(hào)。注意到雖然emp_no為9和11的員工,salary相同,但row_number返回的行號(hào)仍然連續(xù)。
rank()
返回分組后的行號(hào),但和row_number不同的是,如果對(duì)比值重復(fù)時(shí),行號(hào)重復(fù)且會(huì)發(fā)生間斷。
dense_rank()
返回分組后的行號(hào),但和row_number和rank函數(shù)都不同,當(dāng)對(duì)比值重復(fù)時(shí)行號(hào)重復(fù)但不間斷。
percent_rank()
返回當(dāng)前行的相對(duì)排名,計(jì)算在分組中的比例(rank-1)/(總記錄數(shù)-1),需要對(duì)比rank函數(shù)理解。
cume_dist()
返回當(dāng)前行的相對(duì)排名:(前面的行數(shù)或與當(dāng)前行相同的行數(shù))/(總行數(shù))
ntile(分組數(shù)量)
讓所有記錄盡可以的均勻分布。
lag(value any [, offset integer [, default any ]])
返回偏移值,offset integer是偏移值,正數(shù)時(shí)前值,負(fù)數(shù)時(shí)后值,沒有取到值時(shí)用default代替,默認(rèn)偏移量為0, 默認(rèn)值為null
lead(value any [, offset integer [, default any ]])
返回偏移值,offset integer是偏移值,正數(shù)時(shí)取后值,負(fù)數(shù)時(shí)取前值,沒有取到值時(shí)用default代替
first_value(value any)
返回分組第一個(gè)值
last_value(value any)
返回分組最后一個(gè)值
nth_value(value any, nth integer)
返回分組的第n個(gè)值,如果沒有則為null
以上就是postgres支持的窗口函數(shù),大家可以根據(jù)需要選擇使用,特別在寫復(fù)雜查詢時(shí),選擇合適的窗口函數(shù)可以起到意想不到的效果。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/17608.html
摘要:在上一篇里,主要窗口函數(shù)的基本用法。在這一篇中,我們來看看除了聚合函數(shù)之外還支持哪些窗口函數(shù)吧。注意到雖然為和的員工,相同,但返回的行號(hào)仍然連續(xù)。返回分組后的行號(hào),但和和函數(shù)都不同,當(dāng)對(duì)比值重復(fù)時(shí)行號(hào)重復(fù)但不間斷。 在上一篇里,主要窗口函數(shù)的基本用法。 在這一篇中,我們來看看postgresql除了聚合函數(shù)之外還支持哪些窗口函數(shù)吧。 row_number() 返回分組后的行號(hào)。注意到雖...
摘要:和聚合函數(shù)類似,窗口函數(shù)也是計(jì)算一些行集合多個(gè)行組成的集合,我們稱之為窗口的數(shù)據(jù)。但如果這些窗口函數(shù)的作用是一樣的,那分開寫多個(gè)很煩人,也容易出錯(cuò)。 聚合函數(shù)大家都用過,像sum,min,avg等,一般是和group by配合使用。和聚合函數(shù)類似,窗口函數(shù)也是計(jì)算一些行集合(多個(gè)行組成的集合,我們稱之為窗口window frame)的數(shù)據(jù)。但和常規(guī)的聚集函數(shù)不同的是,窗口函數(shù)不會(huì)將參與...
摘要:和聚合函數(shù)類似,窗口函數(shù)也是計(jì)算一些行集合多個(gè)行組成的集合,我們稱之為窗口的數(shù)據(jù)。但如果這些窗口函數(shù)的作用是一樣的,那分開寫多個(gè)很煩人,也容易出錯(cuò)。 聚合函數(shù)大家都用過,像sum,min,avg等,一般是和group by配合使用。和聚合函數(shù)類似,窗口函數(shù)也是計(jì)算一些行集合(多個(gè)行組成的集合,我們稱之為窗口window frame)的數(shù)據(jù)。但和常規(guī)的聚集函數(shù)不同的是,窗口函數(shù)不會(huì)將參與...
閱讀 5412·2021-09-22 15:59
閱讀 1975·2021-08-23 09:42
閱讀 2632·2019-08-29 18:42
閱讀 3513·2019-08-29 10:55
閱讀 2164·2019-08-27 10:57
閱讀 1815·2019-08-26 18:27
閱讀 2776·2019-08-23 18:26
閱讀 3012·2019-08-23 14:40