好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MYSQL row_number()與over()函數用法詳解

MYSQL row_number()與over()函數用法詳解

熱門標簽:臨清電話機器人 智能外呼系統復位 話務外呼系統怎么樣 高清地圖標注道路 拉卡拉外呼系統 大眾點評星級酒店地圖標注 外東北地圖標注 云南電商智能外呼系統價格 400電話可以辦理嗎

語法格式:row_number() over(partition by 分組列 order by 排序列 desc)

row_number() over()分組排序功能:

在使用 row_number() over()函數時候,over()里頭的分組以及排序的執行晚于 where 、group by、  order by 的執行。

例一:

表數據:

create table TEST_ROW_NUMBER_OVER(
       id varchar(10) not null,
       name varchar(10) null,
       age varchar(10) null,
       salary int null
);
select * from TEST_ROW_NUMBER_OVER t;
 
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(1,'a',10,8000);
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(1,'a2',11,6500);
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(2,'b',12,13000);
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(2,'b2',13,4500);
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(3,'c',14,3000);
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(3,'c2',15,20000);
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(4,'d',16,30000);
insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(5,'d2',17,1800);

一次排序:對查詢結果進行排序(無分組)

select id,name,age,salary,row_number()over(order by salary desc) rn
from TEST_ROW_NUMBER_OVER t

結果:

進一步排序:根據id分組排序

select id,name,age,salary,row_number()over(partition by id order by salary desc) rank
from TEST_ROW_NUMBER_OVER t

結果:

 再一次排序:找出每一組中序號為一的數據

select * from(select id,name,age,salary,row_number()over(partition by id order by salary desc) rank
from TEST_ROW_NUMBER_OVER t)
where rank 2

結果:

排序找出年齡在13歲到16歲數據,按salary排序

select id,name,age,salary,row_number()over(order by salary desc)  rank
from TEST_ROW_NUMBER_OVER t where age between '13' and '16'

結果:結果中 rank 的序號,其實就表明了 over(order by salary desc) 是在where age between and 后執行的

例二:

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.統計每一個客戶所有的訂單中購買的金額最小,而且并統計改訂單中,客戶是第幾次購買的:

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

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.注意:在使用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' 

到此這篇關于MYSQL row_number()與over()函數用法詳解的文章就介紹到這了,更多相關MYSQL row_number()與over()函數內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PostgreSQL ROW_NUMBER() OVER()的用法說明
  • postgreSQL中的row_number() 與distinct用法說明
  • postgresql rank() over, dense_rank(), row_number()用法區別
  • MySQL中row_number的實現過程
  • SQL Server中row_number函數的常見用法示例詳解
  • sql四大排名函數之ROW_NUMBER、RANK、DENSE_RANK、NTILE使用介紹
  • sql ROW_NUMBER()與OVER()方法案例詳解

標簽:山西 揚州 福州 定西 無錫 三明 阿里 溫州

巨人網絡通訊聲明:本文標題《MYSQL row_number()與over()函數用法詳解》,本文關鍵詞  MYSQL,row,number,與,over,函數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MYSQL row_number()與over()函數用法詳解》相關的同類信息!
  • 本頁收集關于MYSQL row_number()與over()函數用法詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 色啪啪久久9999kkkk小说 | 舔花缝| 91久久久久人妻无码精品| 一级黄色a级片| 李采潭太阳的后裔| 总攻cao烂各种大佬高H| 亚洲AV无码成人精品国产丁香 | 被老男人开嫩苞受不了了| 久久精品国产99国产精2018| 日韩不卡一区| 菠萝蜜视频一级毛片看看| 97人人超碰国产精品最新蜜芽| 韩国精品makemodel尤物| 师尊呻吟双腿春药H| 国产大学生粉嫩无套流白浆漫画| 粉色视频高清免费完整版| 午夜啪啪剧场| 婷婷久久综合久色综合| 欧美最猛性xxxxx电影免费看| 国产无遮挡又爽又黄大胸免费图片 | 国产大毛片| 热久久国产欧美一区二区精品| 91av综合| 国产顶级疯狂4P乱视频| 青青河边草免费的观看| 夜夜cao| 小柔在公厕被灌满jing液| 系统宿主被guan满的日常| 人妻精品久久久久中文字幕69| 国产色网址| 爽?好大?快?水蜜桃| 真实陪读乱系列全文阅读| 91高跟黑色丝袜呻吟动态图| 在线成人??视频嗯嗯啊AV | 强壮的公次次弄得我高潮A片| 国产一区免费观看| 扒开双腿疯狂进出爽爽爽动态图| 国产精品一区久久 吴梦梦| 超污动图| 成年在线观看网站免费视频| 厨房h肉辣文|