好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > PostgreSQL數(shù)據(jù)庫(kù)中窗口函數(shù)的語(yǔ)法與使用

PostgreSQL數(shù)據(jù)庫(kù)中窗口函數(shù)的語(yǔ)法與使用

熱門(mén)標(biāo)簽:打電話智能電銷(xiāo)機(jī)器人授權(quán) 外呼調(diào)研系統(tǒng) 美容工作室地圖標(biāo)注 合肥公司外呼系統(tǒng)運(yùn)營(yíng)商 重慶自動(dòng)外呼系統(tǒng)定制 海豐有多少商家沒(méi)有地圖標(biāo)注 地圖標(biāo)注和圖片名稱(chēng)的區(qū)別 辦公外呼電話系統(tǒng) 漯河外呼電話系統(tǒng)

什么是窗口函數(shù)?

一個(gè)窗口函數(shù)在一系列與當(dāng)前行有某種關(guān)聯(lián)的表行上執(zhí)行一種計(jì)算。這與一個(gè)聚集函數(shù)所完成的計(jì)算有可比之處。但是窗口函數(shù)并不會(huì)使多行被聚集成一個(gè)單獨(dú)的輸出行,這與通常的非窗口聚集函數(shù)不同。取而代之,行保留它們獨(dú)立的標(biāo)識(shí)。在這些現(xiàn)象背后,窗口函數(shù)可以訪問(wèn)的不僅僅是查詢(xún)結(jié)果的當(dāng)前行。

  • 可以訪問(wèn)與當(dāng)前記錄相關(guān)的多行記錄;
  • 不會(huì)使多行聚集成一行, 與聚集函數(shù)的區(qū)別;

窗口函數(shù)語(yǔ)法

窗口函數(shù)跟隨一個(gè) OVER 子句, OVER 子句決定究竟查詢(xún)中的哪些行被分離出來(lái)由窗口函數(shù)處理。

可以包含分區(qū) (PARTITION BY) 和排序 (ORDER BY) 指令, 這二者都是可選的。

window_func() OVER([PARTITION BY field] [ORDER BY field])

如果沒(méi)有指定 PARTITION BY 和 ORDER BY 指令, 則等同于聚合函數(shù), 對(duì)全部數(shù)據(jù)進(jìn)行計(jì)算。

PARTITION BY 子句將查詢(xún)的行分組成為分區(qū), 窗口函數(shù)會(huì)獨(dú)立地處理它們。PARTITION BY 工作起來(lái)類(lèi)似于一個(gè)查詢(xún)級(jí)別的 GROUP BY 子句, 不過(guò)它的表達(dá)式總是只是表達(dá)式并且不能是輸出列的名稱(chēng)或編號(hào)。 如果沒(méi)有 PARTITION BY, 該查詢(xún)產(chǎn)生的所有行被當(dāng)作一個(gè)單一分區(qū)來(lái)處理。

ORDER BY 子句決定被窗口函數(shù)處理的一個(gè)分區(qū)中的行的順序。 它工作起來(lái)類(lèi)似于一個(gè)查詢(xún)級(jí)別的 ORDER BY 子句, 但是同樣不能使用輸出列的名稱(chēng)或編號(hào)。 如果沒(méi)有 ORDER BY, 行將被以未指定的順序被處理。

PostgreSQL 中的聚合函數(shù)也可以作為窗口函數(shù)來(lái)使用

除了這些內(nèi)置的窗口函數(shù)外,任何內(nèi)建的或用戶(hù)定義的通用或統(tǒng)計(jì)聚集(也就是有序集或假想集聚集除外)都可以作為窗口函數(shù)。僅當(dāng)調(diào)用跟著OVER子句時(shí),聚集函數(shù)才會(huì)作為窗口函數(shù);否則它們作為非窗口的聚集并為剩余的集合返回單行。

窗口函數(shù)示例

員工工資 (emp_salary) 表結(jié)構(gòu)如下:

SELECT emp_no, dep_name, salary
FROM public.emp_salary
order by dep_name, emp_no;

emp_id dep_name salary
7 develop 4200
8 develop 6000
9 develop 4500
10 develop 5200
11 develop 5200
2 personnel 3900
5 personnel 3500
1 sales 5000
3 sales 4800
4 sales 4800

如果要將每位員工與其部門(mén)的平均工資進(jìn)行對(duì)比, 需要這樣的結(jié)果:

emp_id dep_name salary avg
7 develop 4200 5020
8 develop 6000 5020
9 develop 4500 5020
10 develop 5200 5020
11 develop 5200 5020
2 personnel 3900 3700
5 personnel 3500 3700
1 sales 5000 4866.66666666667
3 sales 4800 4866.66666666667
4 sales 4800 4866.66666666667

如果不用窗口函數(shù)來(lái)查詢(xún), 則比較復(fù)雜, 當(dāng)然也能做到, 語(yǔ)句如下:

SELECT e0.emp_no, e0.dep_name, e0.salary, e2.avg_salary
FROM public.emp_salary e0
join (
 select e1.dep_name, avg(e1.salary) as avg_salary
 from public.emp_salary e1
 group by e1.dep_name
) e2 on e2.dep_name = e0.dep_name
order by e0.dep_name, e0.emp_no;

如果使用窗口函數(shù)進(jìn)行查詢(xún), 則很容易做到, sql 語(yǔ)句如下:

SELECT emp_no, dep_name, salary,
  avg(salary) over(partition by dep_name)
FROM public.emp_salary
order by dep_name, emp_no;

但是如果要查詢(xún)隨著員工的增加, 各部門(mén)平均工資的變化, 如下表所示的結(jié)果, 不用窗口函數(shù)查詢(xún)的話就很難做到了。

emp_id dep_name salary avg
7 develop 4200 4200
8 develop 6000 5100
9 develop 4500 4900
10 develop 5200 4975
11 develop 5200 5020
2 personnel 3900 3900
5 personnel 3500 3700
1 sales 5000 5000
3 sales 4800 4900
4 sales 4800 4866.66666666667

如果使用窗口函數(shù), 依然可以輕松完成, 語(yǔ)句如下:

SELECT emp_no, dep_name, salary,
  avg(salary) over(partition by dep_name order by emp_no)
FROM public.emp_salary
order by dep_name, emp_no;

可見(jiàn), 窗口函數(shù)在需要對(duì)查詢(xún)結(jié)果中的相關(guān)行進(jìn)行計(jì)算時(shí)有很大的優(yōu)勢(shì)。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • MySQL8.0窗口函數(shù)入門(mén)實(shí)踐及總結(jié)
  • Mysql8.0使用窗口函數(shù)解決排序問(wèn)題
  • SQL2005 學(xué)習(xí)筆記 窗口函數(shù)(OVER)
  • SQL 窗口函數(shù)實(shí)現(xiàn)高效分頁(yè)查詢(xún)的案例分析

標(biāo)簽:株洲 衡陽(yáng) 錦州 蚌埠 珠海 晉城 烏海 來(lái)賓

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PostgreSQL數(shù)據(jù)庫(kù)中窗口函數(shù)的語(yǔ)法與使用》,本文關(guān)鍵詞  PostgreSQL,數(shù)據(jù)庫(kù),中,窗口,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PostgreSQL數(shù)據(jù)庫(kù)中窗口函數(shù)的語(yǔ)法與使用》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PostgreSQL數(shù)據(jù)庫(kù)中窗口函數(shù)的語(yǔ)法與使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久99精品久久久久婷婷| 色黄小视频| 黑人与黄种人A片| 国产一级特黄A片毛片粉红女郎| 征服美妇小说| 国产精品嫩草| 国产两男一女3p刺激视频| 色欧美与xxxxx| 美国一级aa毛片专区| ?国产精品嫩草影院?俄罗斯| 车速很高的小说推荐| 欧美伊久线香蕉线新在线| 嫖农村40的妇女舒服正在播放| 男女一边摸一边做爽爽的免费软件| 韩国一级毛片高清免费观看| 自怕偷怕| 天天躁日日躁狠狠躁| 舒淇三级在线观看| 久久大香香蕉国产免费网vrr| 男女激烈gif动态图片| 国产灌醉下药迷晕玩弄在线91| 男人光溜溜屁股被调教小说| 诱甜茶暖不思| 亚洲中文字幕无码久久2019| 国产精品粉嫩美乳在线| 天天看片天天a免费观看| 巨胸爆乳???动漫| 九色丨9lpoNY丨国产| 日本大尺度在线观看| 致命的诱惑| 久久精品国产自在一线| AA片在线观看视频在线播放| 好涨太粗进去用力快好深视 | 4P高H喷水荡肉爽腐文| 日本三级电影一区二区| 老牛嫩草一二三产品区别| 99热在线只有精品| 777午夜理伦片免费观看| 欧美学生小嫩嫩AV视频| 99热在这里只有精品| 爱豆传媒在线电影播放|