欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL 窗口函示例數(shù)詳解

 更新時(shí)間:2024年06月14日 15:44:57   作者:Jay_fearless  
窗口函數(shù)(Window Function),也叫OLAP函數(shù)(Online Anallytical Processing,聯(lián)機(jī)分析處理)或者分析函數(shù)(Analytic Function),可以對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理,這篇文章主要介紹了SQL 窗口函數(shù)詳解,需要的朋友可以參考下

1.窗口函數(shù)之排序函數(shù)

RANK, DENSE_RANK, ROW_NUMBER

1.RANK函數(shù)

計(jì)算排序時(shí),如果存在相同位次的記錄,則會(huì)跳過(guò)之后的位次

有 3 條記錄排在第 1 位時(shí): 1 位、1 位、1 位、4 位…

2.DENSE_RANK函數(shù)

同樣是計(jì)算排序,即使存在相同位次的記錄,也不會(huì)跳過(guò)之后的位次

有 3 條記錄排在第 1 位時(shí): 1 位、1 位、1 位、2 位

3.ROW_NUMBER函數(shù)

賦予唯一的連續(xù)位次。

例)有 3 條記錄排在第 1 位時(shí): 1 位、2 位、3 位、4 位

語(yǔ)法
<窗口函數(shù)> OVER ([PARTITION BY <列清單>] ORDER BY <排序用列清單>)

根據(jù)分?jǐn)?shù)對(duì)學(xué)生從高到低排名,不對(duì)科目進(jìn)行分組,成績(jī)相同則排名相同并且位次連續(xù)

SELECT student_name, score, DENSE_RANK() OVER(ORDER BY score DESC) AS 'rank' FROM grade;

根據(jù)分?jǐn)?shù)對(duì)同科目的學(xué)生從高到低排名,成績(jī)相同,排名不相同

SELECT student_name, score, ROW_NUMBER() OVER(PARTITION BY course_name ORDER BY score DESC) AS 'rank' FROM grade;

窗口函數(shù)使用場(chǎng)景

1.直接排序:按照某列對(duì)數(shù)據(jù)進(jìn)行排序
2.Top-k:查詢排名TOP-k的數(shù)據(jù)
3.最值問(wèn)題:查詢最大、最多的數(shù)據(jù)
4.輔助列:比如計(jì)算連續(xù)登陸問(wèn)題、用SQL計(jì)算平均數(shù)、眾數(shù)、中位數(shù)(可以參考我之前的視頻)

到此這篇關(guān)于SQL 窗口函數(shù)的文章就介紹到這了,更多相關(guān)SQL 窗口函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論