MySQL中row_number的实现过程
16lz
2021-12-16
一 、背景
一般在数据仓库环境中,我们可以很方便的使用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.lcidFROM r_qcloud_approval_fh_d s,(select @orw_number:=0,@lcid_no:=0) tORDER BY s.lcid;
三、使用场景
在mysql这种关系型数据库中,没有row_number函数的情况下使用
更多相关文章
- MySQL系列多表连接查询92及99语法示例详解教程
- Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
- MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
- Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
- Android(安卓)Chromium WebView html js 开发系列
- Android(安卓)Calendar使用过程中遇到的问题
- CyanogenMod 编译 Google Galaxy Nexus (GSM) 全过程
- Android(安卓)启动过程
- Android(安卓)启动过程(2)