古代级a毛片在线_91福利视频网_免费a级毛片大学生免费观看_久久亚洲精品中文字幕60分钟

高級SQL分析函數-窗口函數

2023-08-15 09:33:56 來源:博客園

摘要:本文由葡萄城技術團隊于博客園原創并首發。轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。

前言

SQL語句中,聚合函數在統計業務數據結果時起到了重要作用,比如計算每個業務地區的業務總數、每個班級的學生平均分以及每個分類的最大值等。然而,今天我將介紹窗口函數,與聚合函數相比,它們也是一組函數,但在使用方法和適用場景上有所不同。在本章節中,我將重點介紹窗口函數中的RANK和DENSE_RANK函數,以及它們在排名和篩選方面的應用場景。這些窗口函數可以幫助我們更靈活地處理數據并獲得所需的結果,需要注意的是,目前主流的數據庫對窗口函數的最低需求版本如下:

Mysql (>=8.0)PostgreSQL(>=8.4)SQL Server(>2005)SQLite(>3.25.0)


(資料圖片)

如果您的數據庫版本低于上述要求,將無法使用窗口函數。

需求背景:

為了讓大家更好的理解,我將以學生數據作為查詢的條件背景:假設現在某個學校的某個年級的同學完成了一次考試,成績也已經錄入到數據庫中:

現在該年級的教務主任想要看一下:

1.這次考試本年級各個科目的前2名的同學。

2.這次考試每個班級中各個科目的前2名。

3.這次考試每個班級中的總分排名前2名。

如果用普通的SQL查詢即麻煩也費時間,而使用RANK和DENSE_RANK函數就可以很快的查詢出想要的學生數據,下面將為大家介紹如何使用RANK和DENSE_RANK函數實現學生數據的查詢。

使用聚RANK和DENSE_RANK函數查詢學生數據1.查詢本年級各個科目前2名的同學。

為了獲得各個不同科目各自的前2名,我們需要先使用 Rank() 函數來給每個學生在各自科目的分區打上成績排名, 執行如下SQL 語句,查詢出來的結果如下圖。

select sd.*, RANK() over(partition by subject order by score desc) as _rank from score_data sd;

可以看到,執行結果里面已經根據各個科目的成績得到了排名字段 _rank, 接下來只需要使用過濾掉 _rank 字段大于2的部分即可,查詢的結果如下圖所示。

select * from (select sd.*, RANK() over(partition by subject order by score desc) as _rank from score_data sd) tmpwhere tmp._rank <=2

從上圖中看到如果存在成績一樣的情況,就會出現像數學科目的查詢結果:數學查詢出來了三個值(因為有兩個人的數學成績是一樣的77分),如果我們只想保留一條重復的數據,我們可以使用DENSE_RANK函數,這個函數的計算語法和 RANK 基本一致,唯一不同的點在于, Rank 計算時會得到成績高于當前行的記錄的總行數,也就是上圖查詢出來的數學科目的三條數據,而DENSE_RANK 則是計算成績高于當前行的去重記錄的總行數,也就是說,如果出現像上圖的數學科目中的重復的數據,就會去掉重復的數據。

2.查詢每個班級中各個科目的前2名。

查詢每個班級中各個科目的前2名只需要在第一步(查詢本年級各個科目前2名的同學)的加上一個 class 班級的分區規則即可,查詢的結果如下圖所示:

select * from (select sd.*, RANK() over(partition by subject, class order by score desc) as _rank from score_data sd) tmpwhere tmp._rank <=2
3. 查詢每個班級中的總分排名前2名。

同理,在第二步(查詢score_data表中每個班級中各個科目的前2名)的基礎上再添加一個成績的總和SUM(score)函數即可查詢每個班級中的總分前兩名。

select class,name,SUM(score) AS total_score,RANK() over (PARTITION by class order by SUM(score) desc)from score_data sd group by class,name

在這個指標的計算中,需要把聚合函數和排名函數結合起來使用,因為每個人的總成績被拆分為了多個科目的和,所以需要在班級和科目的聯合分組維度上進行聚合,把數據壓縮到每人總分的顆粒度。

總結

窗口函數是 SQL 函數中非常強大的工具,尤其是在報表統計等場景領域。它們不僅能夠簡化復雜的數據計算和分析,還能提高查詢效率和靈活性。窗口函數就像是數據庫操作中最鋒利的瑞士軍刀,為我們提供了一種強大而精確的方式來處理數據。

擴展鏈接:

Spring Boot框架下實現Excel服務端導入導出

項目實戰:在線報價采購系統(React +SpreadJS+Echarts)

Svelte 框架結合 SpreadJS 實現純前端類 Excel 在線報表設計

關鍵詞:

Copyright @  2015-2022 中南網版權所有 關于我們 備案號: 浙ICP備2022016517號-4   聯系郵箱:514 676 113@qq.com

古代级a毛片在线_91福利视频网_免费a级毛片大学生免费观看_久久亚洲精品中文字幕60分钟

      欧美午夜影院一区| 亚洲男人的天堂网| 天堂成人国产精品一区| 成人午夜视频网站| 一区二区三区免费观看| 日韩欧美中文一区二区| 亚洲激情在线激情| 成人免费视频一区| 亚洲国产一二三| 精品不卡在线视频| 天堂午夜影视日韩欧美一区二区| 91丨九色porny丨蝌蚪| 午夜精品一区二区三区三上悠亚| 久久免费偷拍视频| 男女视频一区二区| 国产精品久久久久永久免费观看 | 日韩毛片精品高清免费| 激情综合五月天| 亚洲婷婷国产精品电影人久久| 这里只有精品99re| 亚洲地区一二三色| 久久精品夜夜夜夜久久| 欧美酷刑日本凌虐凌虐| 亚洲一区二区四区蜜桃| 91论坛在线播放| 精品视频资源站| 夜夜嗨av一区二区三区中文字幕 | 亚洲福利视频导航| 91丨九色丨尤物| 欧美视频在线一区二区三区| 亚洲猫色日本管| 99精品欧美一区二区三区综合在线| 午夜精品福利在线| 亚洲婷婷在线视频| 93久久精品日日躁夜夜躁欧美| 色婷婷精品久久二区二区蜜臀av| 国产精品美女一区二区三区 | 国产日韩av一区| 国产精品911| 亚洲h在线观看| 亚洲视频小说图片| 91麻豆精品在线观看| 欧美日韩视频第一区| 亚洲成人激情综合网| 中文字幕精品—区二区四季| 日韩精品中文字幕在线一区| 免费成人结看片| 亚洲另类在线一区| 国产精品欧美一级免费| av激情亚洲男人天堂| 欧美三级资源在线| 日韩精品一区第一页| 国产精品你懂的| 国产亚洲成av人在线观看导航| 国产成人日日夜夜| 欧美在线色视频| 午夜精品久久久久久久久| 亚洲国产精品成人综合色在线婷婷| 欧美不卡一二三| 国产精品一区二区男女羞羞无遮挡| 午夜电影一区二区三区| 亚洲一区二区影院| 亚洲欧美在线视频观看| 国产精品丝袜一区| 久久日一线二线三线suv| 日韩欧美一区在线| 国产精品资源网| 欧美偷拍一区二区| 欧美aa在线视频| 午夜精品久久久久| 午夜不卡在线视频| 亚洲香肠在线观看| 亚洲一区自拍偷拍| 亚洲精品亚洲人成人网| 亚洲免费在线播放| 国产精品女上位| 国产精品国产三级国产三级人妇| 久久久久久久性| 国产午夜亚洲精品理论片色戒| 99免费精品在线观看| 日韩手机在线导航| 成人永久aaa| 日韩三级.com| 成人毛片视频在线观看| 日韩欧美中文字幕制服| 成人国产精品免费观看动漫| 欧美一级日韩一级| 成人av午夜影院| 欧美α欧美αv大片| 成人a级免费电影| 精品成人佐山爱一区二区| 99久久综合国产精品| 亚洲精品在线免费观看视频| 99热这里都是精品| 久久久五月婷婷| 国产亚洲欧美一区在线观看| 国产精品色一区二区三区| 国产精品欧美一区喷水| 亚洲蜜臀av乱码久久精品| 亚洲欧美另类图片小说| 亚洲国产综合人成综合网站| 亚洲午夜影视影院在线观看| 天天av天天翘天天综合网| 在线亚洲一区二区| 国产一区二区三区最好精华液 | 国产成人亚洲综合a∨猫咪| 欧美一级久久久| 99re这里都是精品| 中文字幕巨乱亚洲| 亚洲欧美在线aaa| 亚洲成人一区二区在线观看| 一本到不卡免费一区二区| 国内精品国产三级国产a久久| 欧美一级欧美一级在线播放| 91在线一区二区三区| 中文在线一区二区| 最新国产の精品合集bt伙计| 亚洲一区电影777| 在线国产电影不卡| 国产成人一区在线| 久久久久9999亚洲精品| 国产精品不卡在线观看| 五月天亚洲婷婷| 欧美美女网站色| www.在线欧美| 国产精品高潮呻吟久久| 亚洲自拍偷拍欧美| 激情六月婷婷久久| 欧美精品一区二区在线播放| 国产精品色一区二区三区| 亚洲国产va精品久久久不卡综合| 色欧美日韩亚洲| 成人免费电影视频| 国产精品动漫网站| 亚洲风情在线资源站| 国产精品资源在线观看| 国产日韩欧美电影| 亚洲综合丝袜美腿| 国产一区视频网站| 国产视频一区二区在线| 亚洲人午夜精品天堂一二香蕉| 日日欢夜夜爽一区| 日韩一区二区精品在线观看| 国产欧美精品一区aⅴ影院| 亚洲国产成人高清精品| 在线播放91灌醉迷j高跟美女 | 成人av影院在线| 亚洲色图欧美激情| 日本福利一区二区| 99在线视频精品| 一区二区三区国产| 欧美久久久久中文字幕| 国产日韩欧美激情| 天堂久久久久va久久久久| 日韩欧美精品三级| 综合久久国产九一剧情麻豆| 久久不见久久见中文字幕免费| 久久毛片高清国产| 亚洲一区二区综合| 岛国精品在线播放| 依依成人精品视频| 宅男噜噜噜66一区二区66| 国产精品每日更新| 久久成人免费日本黄色| 欧美韩国一区二区| 91国偷自产一区二区三区成为亚洲经典 | 一二三四社区欧美黄| 56国语精品自产拍在线观看| 国产精品国产三级国产三级人妇 | 亚洲欧美一区二区三区极速播放| 久久精品一二三| 亚洲福利一区二区| www.亚洲在线| 亚洲国产aⅴ成人精品无吗| 欧美电影免费观看高清完整版在线| 亚洲三级免费观看| 国产不卡在线视频| 亚洲精品国产第一综合99久久| 在线电影一区二区三区| 亚洲人精品一区| 成人精品免费视频| 亚洲va欧美va人人爽午夜| 欧美videofree性高清杂交| 一区二区三区久久久| av中文字幕不卡| 日韩国产精品大片| 中文一区二区在线观看| 欧美日韩国产综合视频在线观看| 国产精品水嫩水嫩| 国产高清亚洲一区| 亚洲国产wwwccc36天堂| 欧美精品一区二区三区视频| 午夜精品福利在线| 中文字幕免费不卡在线| 国产伦理精品不卡| 亚洲国产cao| 国产精品乱码一区二区三区软件| 69av一区二区三区| 亚洲福利国产精品| 国产精品视频yy9299一区|