熱線電話:13121318867

登錄
首頁精彩閱讀窗口函數中三種序號函數怎么區分?
窗口函數中三種序號函數怎么區分?
2023-06-08
收藏

MySQL從8.0版本開始支持窗口函數。窗口函數的作用類似于在查詢中對數據進行分組,不同的是,分組操作會把分組的結果聚合成一條記錄,而窗口函數是將分組的結果置于每一條數據記錄中。


窗口函數可以分為靜態窗口函數和動態窗口函數


靜態窗口函數的窗口大小是固定的, 不會因為記錄的不同而不同;動態窗口函數的窗口大小會隨著記錄的不同而變化;


窗口函數總體上可以分為序號函數, 分布函數, 前后函數, 首尾函數和其他函數;


在數據分析中,經常要進行排序,排名的操作,mysql 8.0中新增的窗口函數提供了專門用于此需求的窗口函數


row_number()、rank()、dense_rank()。很多初學者不太容易區分。以下提供一個易記的思路:


(1)row_number( )從字面意思理解,為行號,所以排出來是從1到N的等差數列。


(2)rank( )根據開窗函數中order by的排序要求(升序或降序),對結果進行排序,如果有并列排名,則后面會跳檔下一名次。


(3)dense_rank( )根據開窗函數中order by的排序要求(升序或降序),對結果進行排序,無論是否有并列排名,后面都會繼續排名,名次不會跳檔。



數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢