全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

 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 


相关文章: 网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何在Windows虚拟主机上快速搭建网站?  建站之星价格显示格式升级,你的预算足够吗?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  常州企业建站如何选择最佳模板?  香港服务器部署网站为何提示未备案?  建站之星安装后如何配置SEO及设计样式?  ,sp开头的版面叫什么?  建站之星ASP如何实现CMS高效搭建与安全管理?  ,怎么用自己头像做动态表情包?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何用花生壳三步快速搭建专属网站?  如何在建站之星绑定自定义域名?  简单实现Android验证码  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  如何通过多用户协作模板快速搭建高效企业网站?  如何在腾讯云免费申请建站?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  如何高效配置香港服务器实现快速建站?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  *服务器网站为何频现安全漏洞?  如何在香港服务器上快速搭建免备案网站?  建站主机选哪家性价比最高?  如何在万网ECS上快速搭建专属网站?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  设计网站制作公司有哪些,制作网页教程?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星后台密码遗忘或太弱?如何重置与强化?  高端网站建设与定制开发一站式解决方案 中企动力  b2c电商网站制作流程,b2c水平综合的电商平台?  网站图片在线制作软件,怎么在图片上做链接?  山东云建站价格为何差异显著?  济南网站制作的价格,历城一职专官方网站?  javascript基本数据类型及类型检测常用方法小结  股票网站制作软件,网上股票怎么开户?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  如何在香港免费服务器上快速搭建网站?  微信小程序 input输入框控件详解及实例(多种示例)  如何通过cPanel快速搭建网站?  如何通过商城自助建站源码实现零基础高效建站?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  历史网站制作软件,华为如何找回被删除的网站?  如何在西部数码注册域名并快速搭建网站?  如何在Windows 2008云服务器安全搭建网站?  成都网站制作公司哪家好,四川省职工服务网是做什么用? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。