欧美阿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>
    av黄色在线免费观看| 日韩小视频在线观看专区| 久久影音资源网| 首页国产丝袜综合| 久久综合桃花网| 色哟哟一区二区在线观看 | 日本青青草视频| 欧美国产日韩在线观看| 日韩亚洲国产中文字幕欧美| 亚洲午夜久久久久| 18禁一区二区三区| 欧美日本在线一区| 亚洲国产乱码最新视频 | 天天做天天摸天天爽国产一区| 色哟哟免费视频| 欧美日韩国产美| 午夜精品久久久久久久99樱桃| 美女黄色一级视频| 欧美一区二区人人喊爽| 日本va欧美va欧美va精品| 加勒比一区二区| 久久欧美一区二区| 丁香五精品蜜臀久久久久99网站| 国产一区二区精彩视频| 亚洲美女免费在线| 亚洲欧美高清在线| 日韩一区二区三区电影| 精品一区二区三区在线播放视频 | 日韩在线中文字幕视频| 中文字幕亚洲区| 91亚洲国产成人精品一区二区三| 欧美色网站导航| 日本午夜精品一区二区三区电影| av电影网站在线观看| 国产欧美一区二区在线| 不卡电影一区二区三区| 欧美性猛片xxxx免费看久爱| 五月婷婷欧美视频| av永久免费观看| 国产精品欧美极品| 国产成人av免费观看| 欧美一区二区三区在线视频 | 日本美女视频一区二区| 亚洲天堂岛国片| 亚洲欧洲av在线| 色悠悠在线视频| 久久久久久亚洲综合影院红桃| 国产91对白在线观看九色| 日本精品一区二区三区高清| 天天免费综合色| 伊人影院综合网| 亚洲免费大片在线观看| 黑人巨大精品欧美| 国产精品久久久久久久久搜平片| 91精品人妻一区二区三区四区| 日韩精品一区二区三区视频 | 欧美做受高潮中文字幕| 欧美岛国在线观看| 菠萝蜜视频在线观看一区| 制服丝袜中文字幕一区| 精品一区二区免费视频| 欧洲第一无人区观看| 亚洲成av人片在www色猫咪| 日本少妇xxxxx| 亚洲欧美日韩一区二区三区在线观看| 狠狠人妻久久久久久综合蜜桃| 亚洲国产精品成人综合色在线婷婷 | 色猫猫国产区一区二在线视频| 日韩在线一区二区| 欧美一区免费观看| 日日夜夜精品免费视频| 国产精品国产精品88| 视频一区在线播放| 成人在线观看小视频| 日韩主播视频在线| 好吊日在线视频| 调教+趴+乳夹+国产+精品| 免费成人深夜天涯网站| 一区二区成人在线观看| 美女av免费看| 午夜精品福利一区二区三区av | 日日夜夜免费精品| 国产精品九九九九九九| 麻豆精品视频在线观看免费| 色婷婷综合久久久久中文一区二区| 老色鬼精品视频在线观看播放| 欧美亚洲国产一区二区三区 | 韩国三级在线播放| 欧美国产日韩亚洲一区| www.色多多| 亚洲国产毛片aaaaa无费看| 欧美国产日韩在线观看成人| 久久99在线观看| 91精品国产91久久久久久最新毛片| 成人av在线播放网址| 久久新电视剧免费观看| 国产高清自拍视频| 亚洲宅男天堂在线观看无病毒| 中日韩一级黄色片| 狠狠色丁香九九婷婷综合五月| 91精品国产欧美一区二区| 91在线观看一区二区| 国产精品久久久久久亚洲毛片| a资源在线观看| 理论片日本一区| 91精品免费在线观看| 91视频免费入口| 亚洲天堂久久久久久久| 成人精品一二三区| 精品一区二区三区影院在线午夜 | 奇米色777欧美一区二区| 欧美三级三级三级| 91丨九色丨蝌蚪富婆spa| 国产精品久久久久久亚洲伦| 成年人视频软件| 激情都市一区二区| 久久亚洲AV成人无码国产野外| 樱桃国产成人精品视频| 一本久久a久久免费精品不卡| 国产不卡视频在线播放| 国产午夜精品一区二区| 青青草自拍偷拍| 国产精品综合视频| 久久精品一区二区三区四区| 99久久久无码国产精品衣服| 麻豆精品视频在线观看视频| 日韩美女天天操| 大又大又粗又硬又爽少妇毛片| 蜜桃一区二区三区在线| 精品区一区二区| 亚洲黄色小说视频| 精品一区二区三区av| 国产亚洲欧美在线| 欧美视频一区二区在线| 懂色av一区二区在线播放| 国产精品每日更新| 色综合久久天天综合网| 99国产精品99久久久久久| 一区二区三区不卡视频在线观看| 欧美色网站导航| 欧美xxxxx精品| 日韩和的一区二区| 欧美精品一区二| 日韩av片在线免费观看| 成人中文字幕合集| 亚洲欧美一区二区三区极速播放| 日本二三区不卡| 一边摸一边做爽的视频17国产 | 丁香一区二区三区| 亚洲免费观看高清在线观看| 欧美日韩免费一区二区三区 | 久久99在线观看| 国产精品少妇自拍| 欧美主播一区二区三区| 四虎精品一区二区| 精品制服美女久久| 国产精品久久看| 欧美视频完全免费看| 强迫凌虐淫辱の牝奴在线观看| 久久疯狂做爰流白浆xx| 国产精品青草久久| 欧美日本一区二区| 欧美激情aaa| 成人免费视频一区二区| 亚洲一区二区视频| 欧美不卡在线视频| 久久r这里只有精品| 亚洲国产精品第一页| 久久激五月天综合精品| 国产精品护士白丝一区av| 欧美理论在线播放| 日本人亚洲人jjzzjjz| 中文字幕一区二区三区在线不卡 | 校园春色 亚洲| av漫画在线观看| 国产一区啦啦啦在线观看| 亚洲人一二三区| 日韩三级中文字幕| 四虎884aa成人精品| 国产精品果冻传媒| 国产剧情在线观看一区二区| 夜夜操天天操亚洲| 久久夜色精品国产噜噜av| 色成人在线视频| 亚洲av综合一区二区| av一本久道久久综合久久鬼色| 天天亚洲美女在线视频| 国产精品丝袜一区| 欧美一卡2卡3卡4卡| 老司机成人免费视频| 日本黄色免费观看| 成人小视频在线| 日本成人在线视频网站| 亚洲欧洲国产日韩| 欧美电影免费观看高清完整版| 色悠悠亚洲一区二区| 亚洲自拍偷拍图| 岛国精品一区二区三区| 国产电影精品久久禁18| 五月婷婷色综合|