mysql获取分组后每组的最大值实例详解

发布时间 - 2026-01-11 01:58:08    点击率:

 mysql获取分组后每组的最大值实例详解

1. 测试数据库表如下:

create table test 
( 
  `id` int not null auto_increment, 
  `name` varchar(20) not null default '', 
  `score` int not null default 0, 
  primary key(`id`) 
)engine=InnoDB CHARSET=UTF8; 

2. 插入如下数据:

mysql> select * from test; 
+----+----------+-------+ 
| id | name   | score | 
+----+----------+-------+ 
| 1 | jason  |   1 | 
| 2 | jason  |   2 | 
| 3 | jason  |   3 | 
| 4 | linjie  |   1 | 
| 5 | linjie  |   2 | 
| 6 | linjie  |   3 | 
| 7 | xiaodeng |   1 | 
| 8 | xiaodeng |   2 | 
| 9 | xiaodeng |   3 | 
| 10 | hust   |   2 | 
| 11 | hust   |   3 | 
| 12 | hust   |   1 | 
| 13 | haha   |   1 | 
| 14 | haha   |   2 | 
| 15 | dengzi  |   3 | 
| 16 | dengzi  |   4 | 
| 17 | dengzi  |   5 | 
| 18 | shazi  |   3 | 
| 19 | shazi  |   4 | 
| 20 | shazi  |   2 | 
+----+----------+-------+ 

3. 下面是重点,目的是要按照name分组,然后分组后,获取每组中score分数最多的,sql如下

select a.* from test a inner join (select name,max(score) score from test group by name)b on a.
name=b.name and a.score=b.score order by a.name; 

当然,上面的最后的order by a.name可以去掉

4. 测试结果如下:

+----+----------+-------+ 
| id | name   | score | 
+----+----------+-------+ 
| 3 | jason  |   3 | 
| 6 | linjie  |   3 | 
| 9 | xiaodeng |   3 | 
| 11 | hust   |   3 | 
| 14 | haha   |   2 | 
| 17 | dengzi  |   5 | 
| 19 | shazi  |   4 | 
+----+----------+-------+ 

5. 网上很多方法都是错误的,比如如下一些,亲测是不行的

select * from (select * from test order by score desc) t group by name order by score desc limit 4; 
select score,max(score) from test group by name; 
select * from test where score in (select max(score) from test group by name); 
select * from test where score in (select substring_index(group_concat(score order by score desc separator ','),',',1) from test group by name); 
 
select * from (select name,score,ROW_NUMBER() over(group by name order by score desc) as rowNum from test) rank where rank.rowNum <=1 order by rank.score desc; 
 
select * from( select StoresNo,[CustomerCaseNo],[PaymentsTime], ROW_NUMBER() over(partition by CustomerCaseNo order by [PaymentsTime] desc) as rowNum 
from BAL_paymentsSwiftInfo where StoresNo='zq00000034') ranked where ranked.rowNum <= 1 order by ranked.CustomerCaseNo, ranked.PaymentsTime desc 
 
select * from (select * from test order by score desc) as a group by a.name; 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# mysql获取分组后每组的最大值  # mysql  # 分组后最大值  # 详解MySQL如何交换两列值数据  # MySQL如何用GROUP BY分组取字段最大值或最新一条  # MySQL中int最大值深入讲解  # Mysql获取id最大值、表的记录总数等相关问题的方法汇总  # mysql如何获取数据列值(int和string)最大值  # 都是  # 最多  # 希望能  # 谢谢大家  # 每组  # 组中  # 目的是  # 网上  # InnoDB  # CHARSET  # key  # engine  # primary  # linjie  # jason  # xiaodeng  # hust  # br  # select  # gt 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android使用GridView实现日历的简单功能  Laravel如何处理文件下载请求?(Response示例)  Android自定义控件实现温度旋转按钮效果  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  JavaScript数据类型有哪些_如何准确判断一个变量的类型  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  移动端脚本框架Hammer.js  晋江文学城电脑版官网 晋江文学城网页版直接进入  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  javascript日期怎么处理_如何格式化输出  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  轻松掌握MySQL函数中的last_insert_id()  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  Laravel怎么判断请求类型_Laravel Request isMethod用法  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  如何自定义建站之星模板颜色并下载新样式?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Python函数文档自动校验_规范解析【教程】  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何在阿里云完成域名注册与建站?  如何确保FTP站点访问权限与数据传输安全?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何用PHP工具快速搭建高效网站?  详解vue.js组件化开发实践  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  java获取注册ip实例  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  教学论文网站制作软件有哪些,写论文用什么软件 ?  在Oracle关闭情况下如何修改spfile的参数  iOS UIView常见属性方法小结  JS经典正则表达式笔试题汇总  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  香港服务器WordPress建站指南:SEO优化与高效部署策略  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel安装步骤详细教程_Laravel环境搭建指南  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  PythonWeb开发入门教程_Flask快速构建Web应用  Android实现代码画虚线边框背景效果  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?