欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 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數據庫中窗口函數的語法與使用的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    99久久久无码国产精品不卡| 国产精品网站导航| 亚洲一区二区五区| 99久久精品国产麻豆演员表| 视频国产一区二区| 欧美国产精品中文字幕| 国产麻豆精品在线| 亚洲天堂最新地址| 久久精品欧美日韩精品| 国产乱理伦片在线观看夜一区 | www国产成人免费观看视频 深夜成人网| 亚洲午夜久久久久| 亚洲女则毛耸耸bbw| 欧美日韩成人激情| 日韩精品五月天| av在线网站观看| 精品久久国产97色综合| 久久99久久99| 欧美成人短视频| 国产精品热久久久久夜色精品三区 | 国产在线视频精品一区| 一区二区伦理片| 国产人久久人人人人爽| 国产河南妇女毛片精品久久久| 成人信息集中地| 国产精品乱人伦一区二区| 99天天综合性| 欧美日韩一区二区三区视频| 亚洲大片一区二区三区| 91av在线免费| 久久精品亚洲精品国产欧美| 粉嫩aⅴ一区二区三区四区| 色综合久久久久网| 亚洲一区二区在线免费看| 精品一区二区视频在线观看| 日韩视频在线一区二区| 国内精品自线一区二区三区视频| av免费播放网站| 国产精品国产三级国产aⅴ中文| 9i在线看片成人免费| 欧美高清激情brazzers| 美女网站色91| 日本精品在线免费观看| 一区二区三区在线观看动漫 | 欧美日韩卡一卡二| 日韩成人av影视| 精品熟妇无码av免费久久| 中文字幕在线观看不卡视频| 中文字幕久久久久久久| 日韩丝袜美女视频| 国产成人av电影在线观看| 欧美亚洲高清一区| 免费高清在线一区| 放荡的美妇在线播放| 亚洲一区二区三区四区在线观看 | 中文字幕国产一区| 少妇丰满尤物大尺度写真| 日韩免费成人网| 岛国一区二区三区| 3d成人动漫网站| 国产精品一区二区免费不卡| 在线影视一区二区三区| 久久国产三级精品| 日本韩国一区二区| 老司机精品视频线观看86| 一本到高清视频免费精品| 日本亚洲最大的色成网站www| 亚洲色偷偷综合亚洲av伊人| 天堂成人免费av电影一区| 日韩在线观看免| 日韩激情视频在线观看| 国产大片免费看| 毛片基地黄久久久久久天堂| 色婷婷激情一区二区三区| 久久99国产精品尤物| 欧美亚洲动漫精品| 国产精品一区二区三区网站| 91精品国产入口| 成人福利视频在线看| 精品少妇一区二区三区在线视频| 99综合电影在线视频| 久久久不卡网国产精品一区| 97中文字幕在线观看| 国产精品国模大尺度视频| 亚洲黄色小说视频| 亚洲va在线va天堂| 四虎免费在线视频| 精品在线免费观看| 欧美人妖巨大在线| av午夜一区麻豆| 久久精品水蜜桃av综合天堂| 精品一区二区视频在线观看| 亚洲乱码国产乱码精品精可以看 | 国产精品99久久久久久久vr | 国产欧美一区二区精品性色 | 91香蕉视频黄| 国产亚洲综合性久久久影院| 波多野结衣影院| 亚洲狠狠丁香婷婷综合久久久| 无码人中文字幕| 久久精品噜噜噜成人88aⅴ| 欧美日本韩国一区| caoporm超碰国产精品| 欧美激情自拍偷拍| 亚洲午夜久久久久久久国产| 天堂午夜影视日韩欧美一区二区| 在线观看国产精品网站| 成人黄色电影在线| 国产欧美精品国产国产专区| 精品成人无码一区二区三区| 日日欢夜夜爽一区| 6080亚洲精品一区二区| 中文字幕乱码在线人视频| 亚洲欧美国产高清| 欧洲第一无人区观看| 国产露脸91国语对白| 26uuu亚洲综合色欧美| 人妻无码一区二区三区| 香蕉加勒比综合久久| 欧美日韩一卡二卡| 熟妇女人妻丰满少妇中文字幕| 亚洲精品欧美综合四区| 一本到高清视频免费精品| 成人国产精品免费观看视频| 国产精品欧美久久久久无广告| 四虎国产成人精品免费一女五男| 国产在线精品一区二区三区不卡| 精品福利视频一区二区三区| 蜜桃av免费看| 久久精品99国产国产精| 精品久久久久久久久久久久久久久久久| 一区二区视频观看| 久久成人综合网| 久久综合丝袜日本网| 天堂资源在线视频| 国产黄色91视频| 国产精品久久久久久久午夜片 | 久久国产麻豆精品| 久久综合久久综合久久| 免费成人深夜天涯网站| 国产一区二区不卡在线| 日本一区二区久久| 男人与禽猛交狂配| 91免费视频观看| 亚洲国产精品一区二区久久 | 懂色av粉嫩av蜜乳av| 免费不卡在线视频| 久久久www成人免费毛片麻豆| 亚洲一级理论片| 成人av网站免费观看| 一区二区三区在线观看国产| 51精品秘密在线观看| 四虎影成人精品a片| 国产资源在线一区| 中文字幕人成不卡一区| 欧美三区在线观看| 一起草在线视频| 国产一区二区在线免费观看| 国产精品乱码久久久久久| 在线观看区一区二| 日本aaa视频| 成人综合激情网| 亚洲尤物在线视频观看| 日韩欧美一级片| 永久免费看片直接| 日本r级电影在线观看| 日韩av一区二区三区四区| 久久久精品影视| 一本久久精品一区二区| 久久人妻少妇嫩草av无码专区| 紧缚奴在线一区二区三区| 最好看的中文字幕久久| 91精品欧美综合在线观看最新| 色欲狠狠躁天天躁无码中文字幕| 成人福利视频网站| 日韩精品电影在线| 日本一区二区电影| 欧美老女人第四色| ass极品国模人体欣赏| 91影院在线观看| 日韩电影一区二区三区四区| 国产丝袜美腿一区二区三区| 欧美性感一类影片在线播放| 亚洲成人黄色av| 91天堂素人约啪| 看电影不卡的网站| 一区二区三区四区在线播放| 精品国产乱码久久久久久夜甘婷婷 | 国产成人亚洲精品狼色在线| 亚洲国产美女搞黄色| 久久久久久久久久看片| 精品视频在线看| 亚洲女人毛茸茸高潮| 亚洲色偷偷色噜噜狠狠99网| 丰满白嫩尤物一区二区| 蜜臀久久久99精品久久久久久| 自拍偷拍亚洲激情| www日韩大片| 欧美电影一区二区三区| 杨钰莹一级淫片aaaaaa播放|