博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql分组排序取最大值所在行,类似hive中row_number() over partition by
阅读量:6107 次
发布时间:2019-06-21

本文共 1215 字,大约阅读时间需要 4 分钟。

 如下图, 计划实现 :按照 parent_code 分组, 取组中code最大值所在的整条记录,如红色部分。(类似hive中: row_number() over(partition by))

select c.* from(   select a.*, (@i := case when @key_i=parent_code then @i+1 else 1 end) as sort_num,(@key_i:=parent_code) as tmp         from my_test a, (SELECT  @i := 0,@key_i:='') b        order by parent_code,code desc) c where c.sort_num=1;

个人理解, mysql 运行顺序:  from >>  where >> order by >> select .

 

 

以下部门应该有助于理解mysql中变量的概念。

1.=========================================================================================================

仅按照code排序,加序号sort_num效果如下:  

select (@i := @i + 1) as sort_num, a.*      from my_test a, (SELECT  @i := 0) b    order by code;

2.=========================================================================================================

仅按parent_code分组,按照code排序,加序号.

select a.*, (@i := case when @key_i=parent_code then @i + 1 else 1 end) as sort_num,(@key_i:=parent_code) as tmp     from my_test a, (SELECT  @i := 0,@key_i:='') b    order by parent_code,code desc;

 

 

参考链接 :https://blog.csdn.net/zzhhoubin/article/details/79839610

https://www.cnblogs.com/CharlieLau/p/6737243.html

https://blog.csdn.net/u011728683/article/details/78594070

转载于:https://www.cnblogs.com/andylhc/p/10216626.html

你可能感兴趣的文章
C 函数sscanf()的用法
查看>>
python模块之hashlib: md5和sha算法
查看>>
linux系统安装的引导镜像制作流程分享
查看>>
解决ros建***能登录不能访问内网远程桌面的问题
查看>>
pfsense锁住自己
查看>>
vsftpd 相关总结
查看>>
bash complete -C command
查看>>
解决zabbix 3.0中1151端口不能运行问题
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
dubbo
查看>>
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
高利率时代的结局,任重道远,前途叵测
查看>>
Debian 6.05安装后乱码
查看>>
欢迎大家观看本人录制的51CTO精彩视频课程!
查看>>
IntelliJ IDEA中设置忽略@param注释中的参数与方法中的参数列表不一致的检查
查看>>
关于软件开发的一些感悟
查看>>