mysql实现row_number()和row_number() over(partition by)
row_number() 仅仅是价格排序字段
select @rownum := @rownum + 1 as rn, t.*from (select @rownum := 0) r, test_table tselect
@rank:=@rank+1 as rank
,t.*
from (select @rank:=0) r, DM_GOA.dm_goa_fin_inv_mly_d t;
解释:给test_table里的数据设置行号, rn是行号
row_number() over(partition by)
select if(@uid = t.user_id and @cid = t.city_id,@rank := @rank + 1,@rank := 1) as rank,t.*,@uid := t.user_id,@cid := t.city_idfrom (select @uid := null, @cid := null, @rank := 0) r,(select user_id, city_id, city_name, idfrom t_user_cityorder by user_id, city_id, id) t;
解释:对t_user_city表按照user_id,city_id两个字段做分组设置行号,rank是分组的行号,order by里一定要有两个分组字段及第三个排序字,上面if 也可以用case when
SELECT *FROM (SELECTF.PARTY_ID AS PARTY_ID,F.ALL_COUNT AS ALL_COUNT,F.SU AS SU,CASEWHEN @PARTY_ID != PARTY_ID THEN@ROWNUM := 1ELSE@ROWNUM := @ROWNUM + 1END AS ROWNUM,@PARTY_ID := PARTY_ID AS PARTY_ID12FROM (SELECT @F.PARTY_ID := “”) c,(SELECT @ROWNUM := 0) r,(SELECTE.PARTY_ID AS PARTY_ID,E.SU AS SU,E.ALL_COUNT AS ALL_COUNTFROM (SELECTc.PARTY_ID AS PARTY_ID,COUNT(*) AS SU, d.AMT AS ALL_COUNT FROM dpf_ckaccno_dtl d JOIN dpf_ckaccno cON d.ACC_NO = c.DM01ACCTWHERE d.CRDFLG = ‘D’GROUP BY c.PARTY_ID, d.AMT) EORDER BY E.PARTY_ID,E.SU DESC,E.ALL_COUNT DESC) F) GWHERE G.ROWNUM <= 3
说明:1、(SELECT @ROWNUM := 0)r 用于定义变量并初始化,后面是命别名,此处不能省略,不然会报错。
2、 @PARTY_ID := PARTY_ID AS PARTY_ID12 此处是把当前行值赋值给PARTY_ID 变量,前面(SELECT @F.PARTY_ID := “”) c,已经将其初始化为空串
3、CASE
WHEN @PARTY_ID != PARTY_ID THEN
@ROWNUM := 1
ELSE
@ROWNUM :=@ROWNUM + 1
END AS ROWNUM, – 此处通过case when 条件句来判断变量值与当前PARTY_ID是否相等来,不等说明是新的PARTY_ID,ROWNUM 就为1,否则就+1
4、通过这个sql,我们可以发现mysql在sql语句中使用变量时,初始化的东西放到from语句的后面,使变量的变化语句要放到查询结果里面,这里的原因可能是跟数据库管理系统解析一个sql的顺序有关系
F.PARTY_ID AS PARTY_ID,
F.ALL_COUNT AS ALL_COUNT,
F.SU AS SU,
PARTY_ID ALL_COUNT SU ROW_NUM PARTY_ID_12
102902 5000 18 1 102902
102902 2000 18 2 102902
102902 2 18 3 102902
104631 4900 12 1 104631
104631 500 12 2 104631
104631 2000 6 3 104631
104658 5000 192 1 104658
104658 2000 126 2 104658
104658 1000 48 3 104658
mysql实现row_number()和row_number() over(partition by)相关推荐
- mysql 排序num_MySQL 实现row_number() 分组排序功能
数据库基本脚本 CREATE TABLE `a` ( `ID` INT(10) NULL DEFAULT NULL, `class` INT(10) NULL DEFAULT NULL, `score ...
- mysql稠化报表_Oracle使用PARTITION BY 实现数据稠化报表
所谓的数据稠化,就是补全缺失的数据.因为在数据库表中,存储的数据经常是稀疏的(sparse data),也就是不完整的.比如记录一个员工每个月的销售额,用这么一个销售表来记录:SalesRecord( ...
- MySQL 分类排名(并列、不并列),分组TOP N,ROW_NUMBER()函数
目录 表结构 题目一:获取每个科目下前五成绩排名(允许并列) 分析: 题目二:获取每个科目下最后两名学生的成绩平均值 分析: 题目三:获取每个科目下前五成绩排名(不允许并列) 分析: ROW_NUMB ...
- MySQL ROW_NUMBER 函数
MySQL ROW_NUMBER()函数 为结果集中的每一行生成序列号 MySQL ROW_NUMBER()从8.0版开始引入了功能.这ROW_NUMBER()是一个窗口函数或分析函数,它为从1开始应 ...
- Hive之窗口函数(partition) / order by / row_number / date_sub 等函数联合使用案例(9)
案例1:求出连续销售3天的店铺 一 数据源 ,将数据源(结构化数据)导入到本地一个新建的文件中 数据源 : name,ctime, cost a,2020-02-10,600 a,2020-03- ...
- row number函数 oracle,oracle函数 ROW_NUMBER()
[语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...
- sql 窗口函数ROW_NUMBER() 分组/排序/计数
ROW_NUMBER() 窗口函数 / 分析函数 MySQL中,row_number() 函数 用来分区的,使用它 为返回的结果集中的每一行 生成一个序列号(为行分配序号),第一个数字以1开头. 主要 ...
- SQL 查询 每个班级第n名 每组第n个 区分 分区 分组排序 DENSE_RANK() RANK() ROW_NUMBER()
背景 区分/分区/分组排序: 区分多组有序数据中的部分特典数据: 适用场景 前提:有序数据 查询 每组 前N.第N.后N个记录: 排序编号: 分页: 案例(一瓢饮):每个班级第n名 ,有下表(伪数据) ...
- [转]oracle分析函数Rank, Dense_rank, row_number
oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number) 目录 ==================== ...
最新文章
- unity 程序win7在进程里运行_Win7系统中unity web player是什么程序
- VMware中安装CentOS Linux release 7.4.1708 (Core)
- PuTTY 设置Serial(ubuntu)
- Java:反射+泛型:获取类型参数的实例
- 自动化测试之Appium模拟机测试
- python执行txt中代码_【技术分享】文件解压之过 Python中的代码执行
- 让kbmmw 4.8 支持ios 64
- 暴力破解西电校园网密码
- linux调整刷新率,在Linux操作系统下调整屏幕刷新率的方法
- phpcms搜索功能实现
- 赛门铁克未署名诺顿安全更新 防火墙警报引混乱
- Visual Studio Code修改字体大小
- 解决eclipse出现This Android SDK requires Andro...date ADT to the latest version.问题
- 玩转Mixly – 10、Arduino AVR编程 之 传感器,执行器,通信,存储,factory
- 灯丝LED灯泡的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 常州信息职业技术学院计算机清考,常州信息职业技术学院教务处:http://jwc.ccit.js.cn/...
- 【canvas 背景色】透明背景转换成白色
- Matlab数模笔记(9)--排队模型
- 序列(sequence)
- 龙芯2k按键中断驱动_龙芯2k1000的中断设计
热门文章
- JSP第六次课:数据库访问显示商品信息
- yellow weasel
- 一个关于js所有函数都报错的问题
- c语言enum能自定义吗,18、C语言 —— 枚举enum
- C语言 —— 预定义符号__FILE____LINE___func__(编写调试函数printf , debug)
- jmeter插件 --PerfMon Metrics Collector监控工具的使用
- [Web API] 如何让 Web API 统一回传格式以及例外处理[转]
- (转)HTTP 协议之压缩
- 多个反斜杠的消除处理
- 使用GPS实时记录运动路线