校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MySQL中row_number的實現過程

MySQL中row_number的實現過程

熱門標簽:信陽穩定外呼系統運營商 湖南人工外呼系統多少錢 申請外呼電話線路 芒果電話機器人自動化 南通自動外呼系統軟件 百度地圖圖標標注中心 廣東人工電話機器人 日照旅游地圖標注 石家莊電商外呼系統

一 、背景

一般在數據倉庫環境中,我們可以很方便的使用row_number函數根據某個維度來對數據進行分組,實現每個組內數據編號排序的效果。如下圖所示,該圖是在mysql環境中生成的效果圖,這里以lcid進行的分組,num等價于row_number函數實現的效果:

二、實現過程

1.設置mysql變量

設置兩個變量

set @row_number:=0; --根據lcid_no的判斷結果生成row_number序號

set @lcid_no:= 0;   --用于獲取每行lcid列數據,然后與前面一行的lcid數據進行對比,若相同則自增1,否則為1

 

2.使用case when

SELECT @row_number:=CASE
    WHEN @lcid_no = s.lcid THEN @row_number + 1 
    ELSE 1
    END AS num,
    @lcid_no:=s.lcid AS lcid,
	  s.lcid
FROM r_qcloud_approval_fh_d s,(select @orw_number:=0,@lcid_no:=0) t
ORDER BY s.lcid;

3.過程分析
若存在多條相同數據情形
1)初始條件下,游標指向第一條數據,此時lcid_no = 0,lcid_no 不等于lcid,故row_number = 1
2)游標指向第二條數據,lcid_no = 上一條數據的lcid,因上一條數據的lcid = 當前行lcid,因此row_number =2
無重復數據情形
1)初始條件下,游標指向第一條數據,此時lcid_no = 0,lcid_no 不等于lcid,故row_number = 1

三、使用場景

在mysql這種關系型數據庫中,沒有row_number函數的情況下使用

到此這篇關于MySQL中row_number的實現過程的文章就介紹到這了,更多相關MySQL中row_number內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

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

標簽:阿里 公主嶺 牡丹江 天津 沈陽 惠州 呼和浩特 合肥

巨人網絡通訊聲明:本文標題《MySQL中row_number的實現過程》,本文關鍵詞  MySQL,中,row,number,的,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL中row_number的實現過程》相關的同類信息!
  • 本頁收集關于MySQL中row_number的實現過程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 大悟县| 鲁山县| 松潘县| 西平县| 高雄县| 芒康县| 邵武市| 汉中市| 读书| 蓬溪县| 和政县| 鞍山市| 鹰潭市| 宿迁市| 安新县| 湄潭县| 团风县| 建湖县| 辉南县| 南木林县| 馆陶县| 娱乐| 深州市| 新邵县| 澄迈县| 同仁县| 云龙县| 新余市| 隆化县| 灵武市| 邵阳市| 新兴县| 辽阳县| 兴城市| 曲沃县| 定陶县| 松原市| 余庆县| 和平区| 庄河市| 杭州市|