mysql分组求最大值所在行重复_mysql分组排序取最大值所在行,类似hive中row_number() over partition by...

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

ba2aee6b26b7678e5845e55622a34686.png

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;

d2829001ad3b10164dbe26cf9fa4b497.png

个人理解, 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;

285c1ca9de396f33a39d7139ce6f6776.png

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;

fd979866d0d7132f4a70f1a948ac7dc5.png

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

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

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

mysql 分组排序取最值

查各个用户下单最早的一条记录 查各个用户下单最早的前两条记录 查各个用户第二次下单的记录 一.建表填数据: SET NAMES utf8mb4; -- 取消外键约束 ; -- ------------ ...

hive内group by取第一条数据,Hive中row_number的使用

1.hive的分组和组内排序---语法 语法: row_number() over (partition by 字段a order by 计算项b desc ) rank rank是排序的别名 par ...

MySQL分组排序(取第一或最后)

MySQL分组排序(取第一或最后) 方法一:速度非常慢,跑了30分钟 SELECT custid, apply_date, rejectrule FROM ( SELECT *, IF ( , ) A ...

[转] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit

前言:        同事的业务场景是,按照cid.author分组,再按照id倒叙,取出前2条记录出来.        oracle里面可以通过row_number() OVER (PARTITIO ...

SQL数据分组后取最大值或者取前几个值(依照某一列排序)

今日做项目的时候,项目中遇到须要将数据分组后,分组中的最大值,想了想,不知道怎么做.于是网上查了查,最终找到了思路,经过比較这个查询时眼下用时最快的,事实上还有别的方法,可是我认为我们仅仅掌握最快的方 ...

mySql分组排序

mysql 排序学习---mysql 1.建表语句 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varc ...

mysql 分组排序前n + 长表转宽表

MySQL数据库优化的八种方式(经典必看) 建表 CREATE TABLE if not EXISTS `bb` ( `id` int not null primary key auto_increm ...

SQL之分组排序取top n

转自:http://blog.csdn.net/wguangliang/article/details/50167283 要求:按照课程分组,查找每个课程最高的两个成绩. 数据文件如下: 第一列no为 ...

关于oracle分组排序取值的问题

按照 某字段分组 某字段排序 然后取出该分组中排第1条数据(每组只取一条) SELECT* FROM( SELECT a.*,row_number() over(partition by ORI_FE ...

随机推荐

WCF 定制自己的签名验证逻辑

关键点: 1. 保证在客户端设置签名. client.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentU ...

hdu 1711Number Sequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 数字KMP,原来还能这么用 #include ],b[]; ]; ...

Core Animation系列之CADisplayLink

一直以来都想好好学习下CoreAnimation,奈何涉及的东西太多,想要一次性全部搞定时间上不允许,以后会断断续续的补全.最近项目里用到了CADisplayLink,就顺便花点时间看了看. 一.简介 ...

HTML颜色编码

Web安全色 #000000 #000033 #000066 #000099 #0000CC #0000FF #003300 #003333 #003366 #003399 #0033CC #0033 ...

Spring Cloud教程合集

Spring Cloud系列终于搞完啦! 这一系列是笔者的学习笔记,原书之前也给小伙伴们推荐过 原书采用了较老的Brixton版,笔者在学习的过程中 ...

[FreeMind] 绘制思维时遇到的常见问题解决办法

如何改变节点的摆放方向? 如果是新建节点,选择要放置节点的那一侧,按enter键,或者鼠标右键,插入平行节点即可. 如果是已经建好的节点,可以用ctrl+x, ctrl+v粘贴到另一边,或者选中子节点 ...

CORS跨域模型浅析及常见理解误区分析

CORS跨域资源共享是前后端跨域十分常用的一种方案,主要依赖Access-Control-Allow(ACA)系列header来实现一种协商性的跨域交互. 基本模型 其中的具体流程大致可以分为以下几步 ...

“Hello World!”Final发布文案加美工

文案: 大家好,我们是“Hello World!”团队,本次我将向大家简要介绍一下空天猎的final发布,在空天猎final发布中,我主要从以下两个方面向大家进行介绍,第一个方面是增加了敌方的boss ...

SQL基础--查询之三--嵌套查询

SQL基础--查询之三--嵌套查询

Python--格式化输出%s和%d

https://www.cnblogs.com/claidx/p/7253288.html pythn print格式化输出. %r 用来做 debug 比较好,因为它会显示变量的原始数据(raw d ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值