亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > SQLServer中Partition By及row_number 函數使用詳解

SQLServer中Partition By及row_number 函數使用詳解

熱門標簽:南京怎么申請400這種電話 臺灣外呼系統軟件 南通智能外呼系統怎么樣 真3地圖標注 樂昌電話機器人 疫情時期電話機器人 地圖標注跑線下市場 濮陽清豐400開頭的電話申請 地圖標注可以編輯地名嗎

partition  by關鍵字是分析性函數的一部分,它和聚合函數不同的地方在于它能返回一個分組中的多條記錄,而聚合函數一般只有一條反映統計值的記錄,partition  by用于給結果集分組,如果沒有指定那么它把整個結果集作為一個分組。

今天群里看到一個問題,在這里概述下:查詢出不同分類下的最新記錄。一看這不是很簡單的么,要分類那就用Group By;要最新記錄就用Order By唄。然后在自己的表中試著做出來:

首先呢我把表中的數據按照提交時間倒序出來:

“corp_name”就是分類的GUID(請原諒我命名的隨意性)。 OK, 這里按照最開始的想法加上Group By來看一下顯示效果:

呃,嗯。這尼瑪和想象中的結果不一樣啊,看來寫代碼還是要理性分析問題,意念是無法控制結果滴!

既然要求是不同分類的數據,除了使用Group By之外,還有別的函數能用嗎?度娘了一下結果還真有,over(partition by )函數,那么它和平時用的Group By有什么區別呢? Group By除了對結果進行單純的分組之外呢,一般都和聚合函數一起使用,Partition By也具有分組功能,屬于Oracle的分析函數,在這里就不詳細的不啦不啦不啦了。

看代碼:

over(partition by corp_name order by submit_time desc ) as t 。就是按照corp_name分類并按時間倒序出來,"t" 這里一列呢就是不同corp_name類出現的次數,需求是只查詢出不同分類的最新提交數據,那么我們只需要針對"t"再進行一次篩選即可:

好啦,結果已經出來,不求各位看官喜歡,但求看在我頭像中的胸器望點個贊, 好人一生平安哦!!!

ps:SQL Server數據庫partition by 與ROW_NUMBER()函數使用詳解

關于SQL的partition by 字段的一些用法心得

先看例子:

if object_id('TESTDB') is not null drop table TESTDB
create table TESTDB(A varchar(8), B varchar(8))
insert into TESTDB
select 'A1', 'B1' union all
select 'A1', 'B2' union all
select 'A1', 'B3' union all
select 'A2', 'B4' union all
select 'A2', 'B5' union all
select 'A2', 'B6' union all
select 'A3', 'B7' union all
select 'A3', 'B3' union all
select 'A3', 'B4'

-- 所有的信息

SELECT * FROM TESTDB
A  B
-------
A1 B1
A1 B2
A1 B3
A2 B4
A2 B5
A2 B6
A3 B7
A3 B3
A3 B4

-- 使用PARTITION BY 函數后

SELECT *,ROW_NUMBER() OVER(PARTITION BY A ORDER BY A DESC) NUM FROM TESTDB
A  B  NUM
-------------
A1 B1 1
A1 B2 2
A1 B3 3
A2 B4 1
A2 B5 2
A2 B6 3
A3 B7 1
A3 B3 2
A3 B4 3

可以看到結果中多出一列NUM 這個NUM就是說明了相同行的個數,比如A1有3個,他就給每個A1標上是第幾個。

-- 僅僅使用ROW_NUMBER() OVER的結果

SELECT *,ROW_NUMBER() OVER(ORDER BY A DESC)NUM FROM TESTDB
 A  B   NUM
------------------------
A3 B7  1
A3 B3  2
A3 B4  3
A2 B4  4
A2 B5  5
A2 B6  6
A1 B1  7
A1 B2  8
A1 B3  9

可以看到它只是單純標出了行號。

-- 深入一點應用

SELECT A = CASE WHEN NUM = 1 THEN A ELSE '' END,B
FROM (SELECT A,NUM = ROW_NUMBER() OVER(PARTITION BY A ORDER BY A DESC) FROM TESTDB) T
A  B
---------
A1 B1
  B2
  B3
A2 B4
  B5
  B6
A3 B7
  B3
  B4

接下來我們就通過幾個實例來一一介紹ROW_NUMBER()函數的使用。

實例如下:

1.使用row_number()函數進行編號,如

select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Customer

原理:先按psd進行排序,排序完后,給每條數據進行編號。

2.在訂單中按價格的升序進行排序,并給每條記錄進行排序代碼如下:

select DID,customerID,totalPrice,ROW_NUMBER() over(order by totalPrice) as rows from OP_Order

3.統計出每一個各戶的所有訂單并按每一個客戶下的訂單的金額 升序排序,同時給每一個客戶的訂單進行編號。這樣就知道每個客戶下幾單了

如圖:

 

代碼如下:

select ROW_NUMBER() over(partition by customerID order by totalPrice) as rows,customerID,totalPrice, DID from OP_Order

4.統計每一個客戶最近下的訂單是第幾次下的訂單。

 

代碼如下:

 with tabs as 
( 
select ROW_NUMBER() over(partition by customerID order by totalPrice) as rows,customerID,totalPrice, DID from OP_Order 
 ) 
select MAX(rows) as '下單次數',customerID from tabs group by customerID

5.統計每一個客戶所有的訂單中購買的金額最小,而且并統計改訂單中,客戶是第幾次購買的。

如圖:

上圖:rows表示客戶是第幾次購買。

思路:利用臨時表來執行這一操作。

1.先按客戶進行分組,然后按客戶的下單的時間進行排序,并進行編號。

2.然后利用子查詢查找出每一個客戶購買時的最小價格。

3.根據查找出每一個客戶的最小價格來查找相應的記錄。

代碼如下:

with tabs as 
 ( 
select ROW_NUMBER() over(partition by customerID order by insDT) as rows,customerID,totalPrice, DID from OP_Order 
) 
 select * from tabs 
where totalPrice in  
( 
select MIN(totalPrice)from tabs group by customerID 
 )

6.篩選出客戶第一次下的訂單。

思路。利用rows=1來查詢客戶第一次下的訂單記錄。

代碼如下:

with tabs as 
( 
select ROW_NUMBER() over(partition by customerID order by insDT) as rows,* from OP_Order 
) 
select * from tabs where rows = 1 
select * from OP_Order

7.rows_number()可用于分頁

思路:先把所有的產品篩選出來,然后對這些產品進行編號。然后在where子句中進行過濾。

8.注意:在使用over等開窗函數時,over里頭的分組及排序的執行晚于“where,group by,order by”的執行。

如下代碼:

select  
ROW_NUMBER() over(partition by customerID order by insDT) as rows, 
customerID,totalPrice, DID 
from OP_Order where insDT>'2011-07-22'

以上代碼是先執行where子句,執行完后,再給每一條記錄進行編號。

您可能感興趣的文章:
  • SqlServer2000+ 身份證合法校驗函數的示例代碼
  • Sqlserver 自定義函數 Function使用介紹
  • SQLServer行列互轉實現思路(聚合函數)
  • SQLSERVER分頁查詢關于使用Top方式和row_number()解析函數的不同
  • SQLServer中merge函數用法詳解
  • sqlserver四舍五入使用round函數及cast和convert函數
  • 談談sqlserver自定義函數與存儲過程的區別
  • SQLServer之常用函數總結詳解

標簽:阿里 南京 廣安 陜西 通遼 河北 福建 馬鞍山

巨人網絡通訊聲明:本文標題《SQLServer中Partition By及row_number 函數使用詳解》,本文關鍵詞  SQLServer,中,Partition,及,row,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLServer中Partition By及row_number 函數使用詳解》相關的同類信息!
  • 本頁收集關于SQLServer中Partition By及row_number 函數使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    中文字幕97| 日韩专区亚洲综合久久| 999久久狠狠免费精品| a级毛片免费全部播放| 亚洲爆爽| 四虎久久精品国产| 国产原创视频在线| 欧美大片a一级毛片视频| 成人免费高清视频| 国产成人啪精品视频免费软件| 成人免费福利片在线观看| 午夜久久网| 欧美1区| 国产精品1024在线永久免费| 精品国产一级毛片| 国产精品自拍亚洲| 一级女性全黄生活片免费| 成人av在线播放| 91麻豆精品国产自产在线| 国产视频一区在线| 韩国三级香港三级日本三级la | 日韩一级黄色| 99久久视频| 久久精品大片| 日韩专区亚洲综合久久| 日本免费乱人伦在线观看| 欧美a级v片不卡在线观看| 久久精品店| 久久国产一区二区| 国产视频一区二区在线观看| 日本伦理黄色大片在线观看网站| 九九久久99| 日日夜夜婷婷| 二级片在线观看| 欧美另类videosbestsex久久 | 亚洲天堂免费| 一a一级片| 国产成人啪精品| 国产91丝袜高跟系列| 九九久久国产精品| 精品视频一区二区三区| 九九久久国产精品| 日韩av片免费播放| 欧美激情在线精品video| 99色播| 成人高清视频免费观看| 99热精品在线| 亚飞与亚基在线观看| 免费一级生活片| 久草免费资源| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产原创中文字幕| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩中文字幕一区| 精品国产香蕉在线播出| 可以免费看污视频的网站| 亚洲第一页乱| 久久久成人影院| 久久国产一区二区| 日韩一级黄色| 91麻豆国产| 高清一级做a爱过程不卡视频| 精品国产一区二区三区久久久蜜臀 | 天天做人人爱夜夜爽2020毛片| 九九九国产| 一级女性大黄生活片免费| 精品视频在线看 | 九九九网站| 一本高清在线| 欧美a级片视频| 欧美18性精品| 日韩av成人| 免费毛片播放| 麻豆午夜视频| 日韩中文字幕一区| 国产网站免费| 精品国产一级毛片| 日韩欧美一二三区| 日本免费乱理伦片在线观看2018| 亚洲第一页色| 国产高清在线精品一区a| 99色视频在线观看| 中文字幕一区二区三区精彩视频| 日韩在线观看网站| 久久精品大片| 精品视频在线观看一区二区三区| 国产成人啪精品视频免费软件| 四虎影视库| 欧美爱爱网| 久久精品免视看国产明星| 国产精品自拍在线| 韩国三级香港三级日本三级| 国产综合成人观看在线| 成人a级高清视频在线观看| 欧美a级大片| 国产欧美精品| 久久精品人人做人人爽97| 亚洲精品中文一区不卡| 久久精品店| 日韩专区亚洲综合久久| 麻豆系列 在线视频| 久久久成人网| 91麻豆精品国产自产在线观看一区| 久久久成人影院| 国产91精品系列在线观看| 免费国产在线视频| 一级女性全黄久久生活片| 欧美激情在线精品video| 精品视频在线观看视频免费视频| 欧美激情一区二区三区在线播放 | 日日夜夜婷婷| 免费毛片播放| 午夜激情视频在线播放| 久久99这里只有精品国产| 国产亚洲精品aaa大片| 国产91精品露脸国语对白| 精品在线观看国产| 二级片在线观看| 日本免费乱理伦片在线观看2018| 91麻豆精品国产自产在线 | 午夜家庭影院| 国产一区精品| 成人a级高清视频在线观看| 亚洲精品永久一区| 精品久久久久久中文| 国产一区二区精品久| 久久精品人人做人人爽97| 一级毛片看真人在线视频| 免费国产在线视频| 99色视频| 成人免费网站视频ww| 免费一级生活片| 天天做人人爱夜夜爽2020| 99久久精品国产麻豆| 美女免费精品视频在线观看| 欧美大片一区| 国产成人欧美一区二区三区的| 精品视频免费看| 日本免费看视频| 国产成人啪精品视频免费软件| 日韩免费在线| 国产a视频精品免费观看| 欧美另类videosbestsex久久| 国产麻豆精品免费视频| 国产一区免费在线观看| 国产不卡在线观看视频| 99色视频在线观看| 精品久久久久久影院免费| 你懂的日韩| 精品国产三级a∨在线观看| 欧美激情影院| 韩国毛片基地| 国产a视频精品免费观看| 国产91丝袜在线播放0| 99久久精品国产免费| 欧美大片aaaa一级毛片| 二级片在线观看| 成人免费高清视频| 九九久久国产精品大片| 国产激情一区二区三区| 日韩一级黄色片| 午夜欧美成人香蕉剧场| 高清一级片| 成人a大片在线观看| 四虎影视库| 免费一级生活片| 日本免费乱理伦片在线观看2018| 免费国产在线视频| 麻豆系列 在线视频| 日韩中文字幕在线播放| 91麻豆精品国产自产在线 | 精品视频在线观看免费| 精品在线免费播放| 国产a毛片| 免费国产在线观看不卡| 一级片免费在线观看视频| 99热精品在线| 国产福利免费观看| 色综合久久久久综合体桃花网| 精品视频一区二区三区免费| 99色播| 一级女性全黄久久生活片| 九九久久99| a级黄色毛片免费播放视频| 高清一级淫片a级中文字幕| 精品视频在线看| 香蕉视频久久| 97视频免费在线观看| 国产亚洲精品成人a在线| 国产视频久久久| 国产麻豆精品| 超级乱淫伦动漫| 国产高清视频免费观看| 国产欧美精品| 国产一级强片在线观看| 欧美a级片视频| 日韩免费在线视频| 欧美电影免费| 夜夜操网| 欧美激情一区二区三区在线播放 |