一 、背景

一般在数据仓库环境中,我们可以很方便的使用row_number函数根据某个维度来对数据进行分组,实现每个组内数据编号排序的效果。如下图所示,该图是在mysql环境中生成的效果图,这里以lcid进行的分组,num等价于row_number函数实现的效果:

mysql环境下实现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函数的情况下使用

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
  3. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  4. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  5. Android(安卓)Chromium WebView html js 开发系列
  6. Android(安卓)Calendar使用过程中遇到的问题
  7. CyanogenMod 编译 Google Galaxy Nexus (GSM) 全过程
  8. Android(安卓)启动过程
  9. Android(安卓)启动过程(2)

随机推荐

  1. 谈谈Android个人开发者的现状
  2. AndroidStudio快捷键设置2
  3. android activy加载
  4. Android(安卓)emulated sdcard
  5. Android内存溢出
  6. android 获得listview里的控件的id
  7. Android(安卓)按钮控制ViewPager左右翻页
  8. Android6.0 PackageManagerService(PMS)-
  9. Android Studio 基础 之 如何取消使用 An
  10. Android屏蔽软键盘并且显示光标的实例详