婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PostgreSQL數據庫中窗口函數的語法與使用

PostgreSQL數據庫中窗口函數的語法與使用

熱門標簽:打電話智能電銷機器人授權 外呼調研系統 美容工作室地圖標注 合肥公司外呼系統運營商 重慶自動外呼系統定制 海豐有多少商家沒有地圖標注 地圖標注和圖片名稱的區別 辦公外呼電話系統 漯河外呼電話系統

什么是窗口函數?

一個窗口函數在一系列與當前行有某種關聯的表行上執行一種計算。這與一個聚集函數所完成的計算有可比之處。但是窗口函數并不會使多行被聚集成一個單獨的輸出行,這與通常的非窗口聚集函數不同。取而代之,行保留它們獨立的標識。在這些現象背后,窗口函數可以訪問的不僅僅是查詢結果的當前行。

  • 可以訪問與當前記錄相關的多行記錄;
  • 不會使多行聚集成一行, 與聚集函數的區別;

窗口函數語法

窗口函數跟隨一個 OVER 子句, OVER 子句決定究竟查詢中的哪些行被分離出來由窗口函數處理。

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

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

如果沒有指定 PARTITION BY 和 ORDER BY 指令, 則等同于聚合函數, 對全部數據進行計算。

PARTITION BY 子句將查詢的行分組成為分區, 窗口函數會獨立地處理它們。PARTITION BY 工作起來類似于一個查詢級別的 GROUP BY 子句, 不過它的表達式總是只是表達式并且不能是輸出列的名稱或編號。 如果沒有 PARTITION BY, 該查詢產生的所有行被當作一個單一分區來處理。

ORDER BY 子句決定被窗口函數處理的一個分區中的行的順序。 它工作起來類似于一個查詢級別的 ORDER BY 子句, 但是同樣不能使用輸出列的名稱或編號。 如果沒有 ORDER BY, 行將被以未指定的順序被處理。

PostgreSQL 中的聚合函數也可以作為窗口函數來使用

除了這些內置的窗口函數外,任何內建的或用戶定義的通用或統計聚集(也就是有序集或假想集聚集除外)都可以作為窗口函數。僅當調用跟著OVER子句時,聚集函數才會作為窗口函數;否則它們作為非窗口的聚集并為剩余的集合返回單行。

窗口函數示例

員工工資 (emp_salary) 表結構如下:

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

如果要將每位員工與其部門的平均工資進行對比, 需要這樣的結果:

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

如果不用窗口函數來查詢, 則比較復雜, 當然也能做到, 語句如下:

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;

如果使用窗口函數進行查詢, 則很容易做到, sql 語句如下:

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

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

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

如果使用窗口函數, 依然可以輕松完成, 語句如下:

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;

可見, 窗口函數在需要對查詢結果中的相關行進行計算時有很大的優勢。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MySQL8.0窗口函數入門實踐及總結
  • Mysql8.0使用窗口函數解決排序問題
  • SQL2005 學習筆記 窗口函數(OVER)
  • SQL 窗口函數實現高效分頁查詢的案例分析

標簽:株洲 衡陽 錦州 蚌埠 珠海 晉城 烏海 來賓

巨人網絡通訊聲明:本文標題《PostgreSQL數據庫中窗口函數的語法與使用》,本文關鍵詞  PostgreSQL,數據庫,中,窗口,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PostgreSQL數據庫中窗口函數的語法與使用》相關的同類信息!
  • 本頁收集關于PostgreSQL數據庫中窗口函數的語法與使用的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美sm极限捆绑bd| 国产精品蜜臀在线观看| 国产精品天干天干在观线| 亚洲综合色噜噜狠狠| 久久激情五月激情| 亚洲视频一二三| 日韩精品一区二区三区老鸭窝 | 亚洲国产cao| 免费成人在线视频观看| 97久久精品人人爽人人爽蜜臀| 日韩视频一区二区三区在线播放| 欧美精品在线观看一区二区| 91精品一区二区三区久久久久久| 欧美麻豆精品久久久久久| 欧美日韩国产乱码电影| 欧美一区二区啪啪| 欧美国产禁国产网站cc| 中文字幕精品一区二区三区精品| 久久久久久久精| 亚洲男人的天堂av| 毛片av中文字幕一区二区| 国产在线精品一区二区三区不卡| 成人永久aaa| 欧美日韩一区二区三区四区| 91精品国产91热久久久做人人| 精品日韩一区二区三区免费视频| 久久久久国产免费免费| 亚洲色图.com| 久久国产尿小便嘘嘘尿| 欧美aaaaaa午夜精品| 欧美日韩精品欧美日韩精品| 亚洲综合一区二区精品导航| 波多野洁衣一区| 国产精品久久久久国产精品日日| 国产成人夜色高潮福利影视| 久久蜜桃av一区二区天堂 | 亚洲综合无码一区二区| 91蜜桃免费观看视频| 欧美国产激情二区三区| 国产激情91久久精品导航| 久久久精品蜜桃| 99久久精品情趣| 亚洲男女毛片无遮挡| 欧美视频中文一区二区三区在线观看| 一区二区三区成人在线视频| 欧美三级电影精品| 免费看日韩精品| 欧美xxxx老人做受| 26uuu国产一区二区三区| 一区二区三区四区乱视频| 石原莉奈在线亚洲二区| 成人免费视频视频| 精品久久久久久亚洲综合网 | 91成人国产精品| 国产亚洲精品超碰| 午夜电影一区二区三区| 91尤物视频在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | 久久精品国产99国产| 精品国产乱码久久久久久浪潮| 国产精品白丝jk黑袜喷水| 亚洲三级在线免费| 日韩三级中文字幕| 91香蕉国产在线观看软件| 日韩国产在线一| 久久久久久久久久美女| 91在线无精精品入口| 日韩成人伦理电影在线观看| 精品乱人伦小说| 一本到一区二区三区| 免费不卡在线观看| 中文字幕一区二区三区在线观看| 欧美性一二三区| 国产一区91精品张津瑜| 亚洲自拍偷拍网站| 国产亚洲综合在线| 欧美日韩一区精品| 岛国一区二区三区| 亚洲成人动漫在线观看| 亚洲国产经典视频| 日韩一区二区精品葵司在线| 99久久精品免费观看| 另类小说一区二区三区| 亚洲欧洲综合另类| 国产精品情趣视频| 精品三级在线观看| 欧美剧情片在线观看| 不卡视频在线看| 日本va欧美va欧美va精品| 1区2区3区精品视频| 久久理论电影网| 337p亚洲精品色噜噜噜| www.亚洲免费av| 麻豆国产精品777777在线| 一区二区高清视频在线观看| 国产精品色哟哟网站| 欧美白人最猛性xxxxx69交| 欧美色偷偷大香| 日本精品免费观看高清观看| 成人h动漫精品| 国产成人亚洲综合a∨猫咪| 久久国产精品99久久人人澡| 日韩经典一区二区| 亚洲福利一区二区| 亚洲成人精品影院| 五月天视频一区| 亚洲国产精品一区二区久久恐怖片| 亚洲三级理论片| 国产精品福利一区二区| 亚洲午夜一区二区三区| 7777精品伊人久久久大香线蕉超级流畅| 韩国成人精品a∨在线观看| 国产精品毛片a∨一区二区三区| 欧美曰成人黄网| 国产精品77777| 天天操天天综合网| 欧美激情中文字幕一区二区| 在线观看成人免费视频| 韩国av一区二区三区| 亚洲一线二线三线久久久| 26uuu亚洲综合色| 欧美日韩一区 二区 三区 久久精品| 国产麻豆精品一区二区| 亚洲国产日韩综合久久精品| 国产欧美日韩综合| 欧美大片一区二区| 在线看国产一区二区| 成人av免费网站| 国产麻豆一精品一av一免费| 五月天精品一区二区三区| 专区另类欧美日韩| 国产丝袜欧美中文另类| 欧美一区二区性放荡片| 91福利资源站| 在线视频观看一区| 91福利社在线观看| 91免费视频观看| 成人18视频在线播放| 精品一二三四在线| 青娱乐精品视频| 日韩精品亚洲专区| 欧美日本高清视频在线观看| 一本一道综合狠狠老| 欧美一三区三区四区免费在线看| 久久久久免费观看| 亚洲丝袜制服诱惑| 日韩成人精品在线观看| 高清成人在线观看| 欧美老年两性高潮| 国内成+人亚洲+欧美+综合在线| 99国产精品视频免费观看| 91精品国产一区二区| 中文字幕一区三区| 久久国产精品免费| 欧美性猛片aaaaaaa做受| 久久综合精品国产一区二区三区| 国产精品成人在线观看| 日欧美一区二区| 不卡的av中国片| 精品国产不卡一区二区三区| 亚洲同性gay激情无套| 久久99久久久久久久久久久| 99精品黄色片免费大全| 精品成人佐山爱一区二区| 成人中文字幕在线| 99国产精品久久久久久久久久久| 99综合电影在线视频| 欧美在线看片a免费观看| 欧美日韩精品一区视频| 欧美大片拔萝卜| 中文字幕五月欧美| 亚洲成av人**亚洲成av**| 日韩成人一区二区三区在线观看| 美女视频一区在线观看| 国产91精品入口| 91黄视频在线| 久久天天做天天爱综合色| 综合激情成人伊人| 水蜜桃久久夜色精品一区的特点 | 亚洲综合久久久| 久久99国产精品久久99| 99re成人精品视频| 欧美一区二区三区四区五区| 久久这里都是精品| 亚洲一区二区三区影院| 国产精品资源在线观看| 欧美在线一二三| 欧美激情艳妇裸体舞| 三级久久三级久久| 99久久婷婷国产综合精品电影| 欧美一区二区三区在| 国产精品美女www爽爽爽| 亚洲成人免费在线| 99国产精品久久久久久久久久| 欧美一区二区三区影视| 国产精品国产a级| 麻豆传媒一区二区三区| 91蜜桃免费观看视频| 国产欧美一区二区精品婷婷| 亚洲电影一区二区三区|