以下表为例,需要取每个班级、被选的次数最多的学科,比如1班的有三个选数学的,一个选语文的,那么期望返回的是数学,其他同理。

id name class course
1 张三 1 数学
2 李四 1 数学
3 王五 1 数学
4 赵六 1 语文
5 黑七 2 语文
6 猪八 2 语文
7 琴九 2 数学
8 王十 3 数学
9 毛十一 3 数学
10 萧十二 3 数学
11 阿十三 3 语文

第一种方法: limit + group by

SELECT t.*
FROM( SELECT ta.class,ta.course,count(*) as countsFROM courses as ta group by ta.class,ta.courseorder by counts desc // 在这里排序LIMIT 1000 //这里是必须的,而且好像最大值是1万) t
GROUP BY t.class //外层使用分组

返回结果如下

class course counts
1 数学 3
2 语文 2
3 数学 3

在站内找了几篇博文,基本都是这个套路,也许这种方法性能会好一些,而且好像可以直接取到最大值那一整行的数据,可以说非常方便了。
比如这篇博文还对优化进行了分析:https://blog.csdn.net/u013066244/article/details/116461584
但是:由于公司服务器启用了ONLY_FULL_GROUP_BY,所以没法使用。

第二种方法:group_concat+substring_index

select tb.class,SUBSTRING_INDEX(GROUP_CONCAT(tb.course order by counts desc),',',1) as course
from (SELECT ta.class,ta.course,count(*) as countsFROM courses as ta group by ta.class,ta.course) as tb
group by tb.class;

返回结果如下

class course
1 数学
2 语文
3 数学

关于这个方法,已经有博主写过了,个人觉得很详细了,连接在此:https://blog.csdn.net/MyfishCake/article/details/120175776

Mysql 5.7 取分组第一条相关推荐

  1. 利用partition分组查询 查询每个分组第一条数据

    利用partition分组查询 查询每个分组第一条数据 数据库:sqlserver (其他数据库没有尝试) row_number() over(partition by year(createtime ...

  2. unicloud aggregate的group保留查询数据,提取每个分组第一条数据某个字段值

    直接上代码, .group({_id:"$aaa._id",//按照某个参数分组arr:{"$push":{ //push方法 就是$type_cat相同的数据 ...

  3. xslt 标签取集合第一条数据_1+x证书Web前端开发中级理论考试(试卷1)

    2019年下半年 Web前端开发中级 理论考试 (考试时间19:00-20:30 共150分钟,测试卷1) 本试卷共3道大题,满分100分. 请在指定位置作答. 一.单选题(每小题2分,共30小题,共 ...

  4. xslt 标签取集合第一条数据_用 Asp.Net 建立一个在线 RSS 新闻聚合器

    原代码下载:RSSAggregator.msi 原文出处:Creating an Online RSS News Aggregator with ASP.NET [b]概要 本文讲解了如何使用 XML ...

  5. mysql中如何查询表的第一条和最后一条记录

    第一条: select * from 表名 limit 1; 最后一条:select * from表名 order by 表_id desc limit 1 最后一条:select * from表名 ...

  6. mysql相同姓名只显示第一条_SQL中遇到多条相同内容只取一条的最简单实现方法...

    SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别, 这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项. 如下:表timeand 针对time字 ...

  7. 【爬虫】爬取冰冰第一条视频,保存至csv文件(多页爬取)

    import requests import timer from bs4 import BeautifulSoup import demjson import asyncio import pymy ...

  8. xslt 标签取集合第一条数据_XSLT函数集合:数值函数、字符串函、节点集函数和布尔函数...

    任何的编程语言或者是SQL语句都有内置的函数或方法,而强大灵活的xslt技术也是如此.熟练掌握XSLT的常用函数的用法,XSLT的应用将变得如此轻松,你会发现XSLT比想象中还要牛!以下是xslt数值 ...

  9. mysql 取第一条_MySQL索引底层(一)索引底层原理

    微信公众号:Java患者 专注Java领域技术分享 MySQL索引底层原理 局部性与页 在操作系统中,我们执行一个指令去磁盘取数据,那么他会从磁盘取出4KB数据,这个4KB就是一个局部单位,而这4KB ...

最新文章

  1. 掏空老底,值得推荐的10个学习神器,总有一个用得上!
  2. Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)
  3. SAP收购的coresystem app的使用截图
  4. 模拟耗时操作_在集成测试中模拟耗时的动作
  5. 小甲鱼Python第二十二讲课后习题
  6. 矩阵加法(信息学奥赛一本通-T1124)
  7. 那些让我们哭的一塌糊涂的句子
  8. Linux 查看命令
  9. Django-ModelFrom中修改save后的字段值
  10. java调c 申请内存_JAVA简单调用C/C++语言(JNI学习三)
  11. cve2018 linux内核提权漏洞,CVE-2018-18955:较新Linux内核的提权神洞分析
  12. 20200515每日一句
  13. android手机远程控制电脑源代码,手把手教你用安卓手机实现远程控制电脑-网络教程与技术 -亦是美网络...
  14. 计算机专业介绍课件,计算机专业介绍课件
  15. 美团机器学习InAction系列—实例详解机器学习如何解决问题
  16. 减肥要吃...淡化色斑要吃....皮肤干燥要吃...长了小痘痘要吃...整天对着电脑要吃...记住这些
  17. laravel安装 nwidart/laravel-modules 出现的问题
  18. 跨平台.NET Core--微软开源方向
  19. IBM Websphere MQ 使用详解
  20. 现在比较流行的编程语言_比较流行的编程语言

热门文章

  1. jenkins 一键式部署的工具
  2. ZPO006采购单收货报表
  3. Android 源码编译技巧--模块清理
  4. JPG图片怎么压缩到30k内?如何压缩图片到指定大小?
  5. 延迟满足 —— 达到目标需要忍住重重诱惑
  6. C语言:围圈报数游戏
  7. 数据泄露的原因是什么?如何保护数据安全?
  8. 《桃花源记》--歪解
  9. 2020最新阿里、腾讯、华为、字节跳动等大厂的薪资和职级对比
  10. 使用Ajax实现百度下拉框