亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

sql server如何利用開窗函數(shù)over()進(jìn)行分組統(tǒng)計(jì)

2024-08-31 01:03:44
字體:
供稿:網(wǎng)友
這篇文章主要介紹了sql server利用開窗函數(shù)over()進(jìn)行分組統(tǒng)計(jì)的相關(guān)資料,需要的朋友可以參考下
 

這是一道常見的面試題,在實(shí)際項(xiàng)目中經(jīng)常會(huì)用到。

需求:求出以產(chǎn)品類別為分組,各個(gè)分組里價(jià)格最高的產(chǎn)品信息。

實(shí)現(xiàn)過程如下:

declare @t table(ProductID int,ProductName varchar(20),ProductType varchar(20),Price int)

--測(cè)試數(shù)據(jù)

insert @tselect 1,'name1','P1',3 union allselect 2,'name2','P1',5 union allselect 3,'name3','P2',4 union allselect 4,'name4','P2',4

--做法一:找到每個(gè)組里,價(jià)格最大的值;然后再找出每個(gè)組里價(jià)格等于這個(gè)值的
--缺點(diǎn):要進(jìn)行一次join

select t1.* from @t t1 join (select ProductType,  max(Price) Price  from @t  group by ProductType) t2 on t1.ProductType = t2.ProductType where t1.Price = t2.Price order by ProductType

--做法二:利用over(),將統(tǒng)計(jì)信息計(jì)算出來,然后直接篩選結(jié)果集。
--over() 可以讓函數(shù)(包括聚合函數(shù))與行一起輸出。

;with cte as( select *, max(Price) over(partition by (ProductType)) MaxPrice from @t)select ProductID,ProductName,ProductType,Price from cte where Price = MaxPrice order by ProductType

--over() 的語法為:over([patition by ] <order by >)。需要注意的是,over() 前面是一個(gè)函數(shù),如果是聚合函數(shù),那么order by 不能一起使用。
--over() 的另一常用情景是與 row_number() 一起用于分頁。

現(xiàn)在來介紹一下開窗函數(shù)。

窗口函數(shù)OVER()指定一組行,開窗函數(shù)計(jì)算從窗口函數(shù)輸出的結(jié)果集中各行的值。 

開窗函數(shù)不需要使用GROUP BY就可以對(duì)數(shù)據(jù)進(jìn)行分組,還可以同時(shí)返回基礎(chǔ)行的列和聚合列。  

1.排名開窗函數(shù)

ROW_NUMBER、DENSE_RANK、RANK、NTILE屬于排名函數(shù)。

排名開窗函數(shù)可以單獨(dú)使用ORDER BY 語句,也可以和PARTITION BY同時(shí)使用。

PARTITION BY用于將結(jié)果集進(jìn)行分組,開窗函數(shù)應(yīng)用于每一組。

ODER BY 指定排名開窗函數(shù)的順序。在排名開窗函數(shù)中必須使用ORDER BY語句。

例如查詢每個(gè)雇員的定單,并按時(shí)間排序

WITH OrderInfo AS( SELECT ROW_NUMBER() OVER(PARTITION BY EmployeeID ORDER BY OrderDate) AS Number, OrderID,CustomerID, EmployeeID,OrderDate FROM Orders (NOLOCK)) SELECT Number,OrderID,CustomerID, EmployeeID ,OrderDateFrom OrderInfo WHERE Number BETWEEN 0 AND 10

窗口函數(shù)根據(jù)PARTITION BY語句按雇員ID對(duì)數(shù)據(jù)行分組,然后按照ORDER BY 語句排序,排名函數(shù)ROW_NUMBER()為每一組的數(shù)據(jù)分從1開始生成一個(gè)序號(hào)。 

ROW_NUMBER()為每一組的行按順序生成一個(gè)唯一的序號(hào)

RANK()也為每一組的行生成一個(gè)序號(hào),與ROW_NUMBER()不同的是如果按照ORDER BY的排序,如果有相同的值會(huì)生成相同的序號(hào),并且接下來的序號(hào)是不連序的。例如兩個(gè)相同的行生成序號(hào)3,那么接下來會(huì)生成序號(hào)5。

DENSE_RANK()和RANK()類似,不同的是如果有相同的序號(hào),那么接下來的序號(hào)不會(huì)間斷。也就是說如果兩個(gè)相同的行生成序號(hào)3,那么接下來生成的序號(hào)還是4。

NTILE (integer_expression) 按照指定的數(shù)目將數(shù)據(jù)進(jìn)行分組,并為每一組生成一個(gè)序號(hào)。

2.聚合開窗函數(shù)

很多聚合函數(shù)都可以用作窗口函數(shù)的運(yùn)算,如SUM,AVG,MAX,MIN。

聚合開窗函數(shù)只能使用PARTITION BY子句或都不帶任何語句,ORDER BY不能與聚合開窗函數(shù)一同使用。

例如,查詢雇員的定單總數(shù)及定單信息

WITH OrderInfo AS(SELECT COUNT(OrderID) OVER(PARTITION BY EmployeeID) AS TotalCount,OrderID,CustomerID, EmployeeID,OrderDate FROM Orders (NOLOCK))SELECT OrderID,CustomerID, EmployeeID ,OrderDate,TotalCountFrom OrderInfo ORDER BY EmployeeID 

如果窗口函數(shù)不使用PARTITION BY 語句的話,那么就是不對(duì)數(shù)據(jù)進(jìn)行分組,聚合函數(shù)計(jì)算所有的行的值。

WITH OrderInfo AS( SELECT COUNT(OrderID) OVER() AS Count,OrderID,CustomerID, EmployeeID,OrderDate FROM Orders (NOLOCK))

以上就是本文的全部?jī)?nèi)容,希望大家可以學(xué)會(huì)sql server利用開窗函數(shù)進(jìn)行分組統(tǒng)計(jì)的方法,謝謝大家的閱讀。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
色青青草原桃花久久综合| 国产丝袜一区二区| 精品人妻无码一区二区三区蜜桃一| 噜噜噜天天躁狠狠躁夜夜精品| 青青草免费观看免费视频在线| 国产寡妇亲子伦一区二区三区四区| 九九九在线观看| 国产呻吟对白刺激无套视频在线| 国内精品伊人久久久| 九九热免费在线观看| 亚洲第一免费播放区| 日韩1区在线| 免费观看成年在线视频网站| 91丨九色丨黑人外教| 精彩国产在线| 欧美极品视频| 亚洲人成免费网站| 免费在线激情视频| 亚洲一级片免费观看| 久久精品国产亚洲精品2020| 日本亚洲三级在线| 亚洲播播91| 亚洲视频在线观看日本a| 欧美日韩在线中文| 国产最顶级的黄色片在线免费观看| 久久久久成人精品免费播放动漫| 国产一区二区久久久久| 精品国产乱码久久久久久免费| 日韩欧美一区二区视频| 久久欧美中文字幕| 午夜久久久久久久久| 国产精品白浆视频免费观看| 九九热国产视频| 成视人a免费观看视频| 欧美天堂在线视频| 久久成人激情视频| 色综合中文综合网| 男男h黄动漫啪啪无遮挡软件| 亚洲高清毛片| 亚洲黄色有码视频| 国产日韩专区在线| 免费中文字幕日韩欧美| 国产精品免费一区| 一区二区在线观看视频在线| 正义之心1992免费观看全集完整版| 麻豆国产一区二区三区四区| 91美女片黄在线观看游戏| 国产福利一区二区三区视频在线| 欧美最猛性xxxxxhd| 深夜福利国产精品| 国产综合色精品一区二区三区| av资源中文在线天堂| 欧美国产日韩电影| 国产精品久久久久久久免费看| 久久婷婷五月综合| 久久久久人妻一区精品色欧美| 日本中文字幕免费| 欧美性色黄大片人与善| 蜜桃91麻豆精品一二三区| 亚洲一区二区影院| 亚洲精品福利在线观看| 艳妇乳肉豪妇荡乳av| 国产日产久久高清欧美一区| 国产一区二区欧美日韩| **三级三级97片毛片| 日本超碰一区二区| 北条麻妃69av| 亚洲аv电影天堂网| www在线观看播放免费视频日本| 欧美丝袜美女中出在线| 日日噜噜噜夜夜爽爽| 国产精欧美一区二区三区蓝颜男同| 中文字幕剧情在线观看一区| 欧美日韩dvd在线观看| 亚洲乱码国产乱码精品精软件| 日韩你懂的在线观看| 色8久久人人97超碰香蕉987| 波多野结衣在线观看一区| 2022亚洲天堂| 色中文字幕在线观看| 久久久精品免费网站| 欧美激情视频在线| 国产欧美日韩精品一区二区三区| 四虎国产精品永久在线国在线| 国产精品久久久午夜夜伦鲁鲁| 日韩成人av一区二区| 免费黄色网址在线| 亚洲图片欧美另类| 亚洲专区免费| 免费成人在线网站| 一区二区在线观看视频| 一区二区三区视频在线播放| 日本亚洲欧美成人| 99精品视频99| 日韩有吗在线观看| 亚洲欧洲在线观看av| 国产一级免费观看| 精品国产乱码久久久久久夜甘婷婷| 99久久精品免费看国产免费软件| 欧美亚洲人成在线| 亚洲伦伦在线| 91麻豆视频在线观看| 国产又黄又猛又爽| 亚洲午夜一区二区三区| 色8久久影院午夜场| 日韩经典第一页| 99久在线精品99re8热| 国产精品视频在线观看免费| 欧美 日韩 国产 一区| 亚洲欧洲av色图| 91亚洲精品在看在线观看高清| 亚洲熟女综合色一区二区三区| 国产精品无码午夜福利| 精品成av人一区二区三区| 亚洲欧美国产日韩天堂区| 日本免费黄网站| 黄色网址多少| 欧美精品色视频| 欧美日韩一级在线| 欧美巨大黑人极品精男| 乱色精品无码一区二区国产盗| 在线观看免费视频高清游戏推荐| 诱受h嗯啊巨肉高潮| 涩涩视频在线观看| 五月激情综合色| 欧美视频一区二区三区| 91精产国品一二三产区别沈先生| 黄色av小说在线观看| 国产在线观看免费一区| 亚洲欧美日韩一区二区三区四区| 日韩av无码中文字幕| 亚洲精品免费观看| avtt中文字幕| 亚洲一区观看| 无人在线观看的免费高清视频| 99热免费在线| 人人干狠狠干| 国产精品久久久久久久久久久久久久久久久| 国产欧美日韩在线观看视频| 性欧美69xoxoxoxo| 国产国语亲子伦亲子| 成人激情诱惑| 97视频久久久| 可以看毛片的网址| 成人激情小说乱人伦| 一区二区三区免费网站| 91九色在线视频| 天堂一区二区三区| 欧美国产偷国产精品三区| 日韩**一区毛片| 高h放荡受浪受bl| 日韩在线一二三区| 中文字幕成人av| 精品日韩一区| 欧美诱惑福利视频| 国产视频手机在线播放| 香蕉久久夜色精品国产使用方法| 亚洲天堂成人网| 亚洲精品久久久一区二区三区| 美女露胸视频在线观看| 精品国产一区二| 欧美亚州韩日在线看免费版国语版| 四季av一区二区| 日韩精品欧美| 激情综合闲人网| 国产精品久久久久久麻豆一区软件| 德国一级在线视频| 亚洲另类欧美自拍| 国产精品永久入口久久久| 黄色成人在线网址| 日韩av手机版| 中文字幕日韩欧美| 九九热视频这里只有精品| 中文在线天堂库| 日本久久亚洲电影| 美国三级日本三级久久99| 欧美呦呦网站| 麻豆精品蜜桃一区二区三区| 91精品国产综合久久久久久久久久| 一区二区精彩视频| 粉嫩av一区二区夜夜嗨| 91麻豆精品国产综合久久久久久| 久久久久久久激情视频| 国产精品女主播av| 日本一区二区三区视频视频| 疯狂欧洲av久久成人av电影| 亚洲图片制服诱惑| 免费视频一区三区| 亚洲福利天堂| 国产综合色区在线观看| 国内自拍中文字幕| 亚州综合一区| 成人国产一区二区三区精品| 欧美福利网站| 国产无套在线观看| 日本在线观看网址| 视频一区二区三区不卡| 亚洲开心激情网| 在线天堂资源www在线污| 久久久久久久中文字幕| 亚洲色图第一页| 国产美女视频免费| 日韩网站中文字幕| 午夜精品视频在线观看一区二区| 日韩欧美中文| 久久亚洲道色| 亚洲精品在线视频免费观看| 国内福利视频| 穿情趣内衣被c到高潮视频| 亚洲蜜桃精久久久久久久久久久久| 伊人亚洲精品| 国产激情精品一区二区三区| 污污的视频在线观看| 国产精品久久国产| 欧美午夜丰满在线18影院| 在线观看av网| 国产成人精品无码片区在线| 亚洲一区三区电影在线观看| 中文字幕亚洲综合久久五月天色无吗''| 韩日一区二区三区| 日日躁夜夜躁人人揉av五月天| 日本一级黄色大片| 国产精品一二区| 欧美久久精品一级c片| 国产极品美女高潮无套久久久| 18一19gay欧美视频网站| 九九热精彩视频| 久久99精品国产99久久6尤物| 国产日韩在线免费观看| 91精品人妻一区二区三区蜜桃欧美| 悠悠资源av网址| 一区二区三区www污污污网站| 蜜臀av性久久久久av蜜臀妖精| 日本xxxx免费| 国产精品综合久久久| 无码国产色欲xxxx视频| 亚洲综合电影| 久久久久久久网| 亚洲天堂手机| 两个人的视频www国产精品| 国产原创在线| 国产在线视频网址| 性欧美videos| 亚洲午夜无码av毛片久久| 超碰成人在线播放| 成人激情在线播放| 成人a视频在线观看| 色偷偷91综合久久噜噜| 今天免费高清在线观看国语| 亚洲视频综合在线| 成人看片在线观看| 有色激情视频免费在线| 国产情侣一区二区| 国产精品av免费| 国产成人av一区二区三区| 亚洲911精品成人18网站| 成 年 人 黄 色 大 片大 全| 九九久久精品这里久久网| 一色屋色费精品视频在线观看| 一区二区三区四区在线免费观看| 亚洲国模精品私拍| 午夜激情视频在线播放| 亚洲黄色免费在线观看| gogogo高清免费观看在线视频| 精品日韩美女| 欧美激情自拍| 欧美人与性动交a欧美精品| 台湾佬成人中文网222vvv| 日本高清不卡一区二区三区视频| 欧美黄色免费在线观看| 北条麻妃在线视频观看| 日韩黄色精品视频| 免费高清在线观看电视| 国产精品热视频| 高清视频在线观看一区| 亚洲天堂av免费在线观看| 成人免费高清在线| 啦啦啦高清在线观看www| 亚洲一区欧美激情| 国内精品伊人| 国产女人爽到高潮a毛片| av影片免费在线观看| 日韩影院二区| 欧美刺激午夜性久久久久久久| 日韩香蕉视频| 中文字幕55页| 欧美激情综合五月色丁香| 国产亚洲一区二区手机在线观看| 欧美日韩一区二区三区在线播放| 91精品国产综合久久久蜜臀粉嫩| 精品成人无码久久久久久| 欧美日韩精选| 日韩亚洲一区在线| 国产三级视频网站| 久久国产免费看| 黄色网址大全在线观看| 中文字幕一区二区三区精彩视频| 成人精品一区二区三区中文字幕| 成人福利片网站| www.国产视频.com| 免费在线午夜视频| www.亚洲.com| 国产偷人爽久久久久久老妇app| 非洲黑人最猛性xxxx交| 欧美日韩综合视频网址| 国产精品免费看| 樱桃国产成人精品视频| 国产成人av电影在线观看| 国产精品一国产精品最新章节| 三级影片在线看| 亚洲欧洲闷骚av少妇影院| 97久久人人超碰caoprom| 一区二区三区欧美成人| 久久99热精品这里久久精品| 欧美日韩中文字幕一区二区三区| 午夜精品久久久久| 午夜国产福利视频| jizzjizz少妇亚洲水多| 激情视频在线观看| 久久国产视频播放| 亚洲6080在线| 欧美伊人影院| 国产精品老牛影院在线观看| 国产激情三区| 国产精品麻豆免费版现看视频| 爱啪导航一精品导航站| 欧美二区观看| 国产91aaa|