mysql分组后组内排名_SQL实现group by 分组后组内排序-程序员宅基地

技术标签: mysql分组后组内排名  

在一个月黑风高的夜晚,自己无聊学习的SQL的时候,练习,突发奇想的想实现一个功能查询,一张成绩表有如下字段,班级ID,英语成绩,数据成绩,语文成绩如下图

0aaf30ca79e31c9b972a1203b9a0dea0.png

实现 查询出 每个班级英语成绩最高的前两名的记录。

看起来不难的业务,做起来才知道还挺麻烦的,说白了其实就是实现分组后的组内排序,一般不思考的话我们会写出这样的语句:

select top 2 English,Classid from CJ group by Classid order by English desc

8074b8dc7a63e56d2b2e443a0261e31a.png

出现这个错误,应该就明白了其实数据库的查询顺序是先分组的,最后才将结果进行排序。通过正常逻辑思考,通过班级分组,不就是分了三个组:班级1,班级2,班级3 。我们可以通过聚合函数查询出,每个组的个数,平均值等。可是你后面跟了英语成绩什么鬼?分组之后意味着,我们不能查询单个的记录了,我们查询的单位都是关于组的信息。

第一种实现 1

SELECT * FROM CJ m

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39823269/article/details/113569236

智能推荐

HTML之img展示base64图片_base64图片示例-程序员宅基地

文章浏览阅读3.5k次。base64图片示例_base64图片示例

一个安全架构师需要做什么?有什么能力要求?_安全系统设计岗位需要具备的能力-程序员宅基地

文章浏览阅读5.2k次。杭州或者北京的安全架构师,可以到p7及以上级别的工作内容包括如下:1、负责奇点云平台数据安全相关核心功能研发,参与产品需求分析、业务讨论、设计工作,评估需求的技术可行性和技术难点;2、负责产品的技术框架选型,编写接口规范、编码规范等文档;3、负责系统架构设计、搭建、数据库设计、核心功能代码的编写;4、为开发人员提供快速有效的开发框架、服务、公用组件;5、负责项目开发过程中的技术攻关,和运行中出现的技术问题;6、负责对架构进行优化,持续改进性能、可扩展性、稳定性、安全性。岗位需要具..._安全系统设计岗位需要具备的能力

utc时间 单位换算_时间系统转换_北斗开放实验室-程序员宅基地

文章浏览阅读1.9k次。1.下载包概述BDT采用国际单位制(SI)秒为基本单位连续累计,不闰秒,起始历元为2006年1月1日协调世界时(UTC)00时00分00秒,采用周和周内秒计数。BDT通过UTC(NTSC)与国际UTC建立联系,BDT与UTC的偏差保持在100纳秒以内(模1秒)。协调世界时(UniversalCoordinatedTime,UTC)是对原子时..._utc时间单位

Ubuntu 修改默认的PDF打开方式-程序员宅基地

文章浏览阅读119次。Ubuntu自带了可以打开PDF的文档编辑器,如GIMP和文档查看器,但这些自带的文档编辑器并不是很好用,很可能会产生乱码,以至于不方便…… 由于在WIN下对foxit的产品感觉很满意,并且知道它也为linux做了一个PDF查看器,于是google了一下foxit deb,并下载下来…… 安装完了之后,发现它不是默认的PDF查看器,每次都需要单击右键选择,很..._debian 修改默认pdf打开

自己编写的matlab zigzag排序算法_matlab 矩阵zigzag排序-程序员宅基地

文章浏览阅读2.2k次。%%%%%%%%%%%%%%%%%Copyright:wzr1201 %%%Data:2013-05-08%%%%%%%%%%%%%%clear;clc;N=512;A=randint(N,N,[2,10]); %N-by-N, random array of integerslen=N*N;B=zeros(1,len);%zigzag排序后的_matlab 矩阵zigzag排序

R语言使用rnbinom函数生成符合负二项分布的随机数、使用plot函数可视化符合负二项分布的随机数(Negative binomial distribution)_r语言中怎么生成服从负二项分布的随机数-程序员宅基地

文章浏览阅读1.2k次,点赞12次,收藏11次。R语言使用rnbinom函数生成符合负二项分布的随机数、使用plot函数可视化符合负二项分布的随机数(Negative binomial distribution)_r语言中怎么生成服从负二项分布的随机数

随便推点

Ubuntu 搭建SVN服务器_ubuntu svn-程序员宅基地

文章浏览阅读1.9k次。为了学习SVN服务器是怎么搭建的,我在Ubuntu虚拟机上搭建了一个SVN服务器,可以作为项目开发的版本,记录下来防止自己遗忘,同时可以帮助更多的人。一:搭建环境查看Ubuntu系统的版本信息:可用cat /proc/version命令、uname -a命令与sb_release -a命令。Ubuntu:14.04 64位SVN:通过apt-get 安装二:搭建步骤..._ubuntu svn

Protostar Format Write Up_protostar format0 writeup-程序员宅基地

文章浏览阅读1k次。protostar format writeup_protostar format0 writeup

小孩-高性能Mysql-日志缓冲区-程序员宅基地

文章浏览阅读328次,点赞9次,收藏11次。日志缓冲区(Log Buffer)是 MySQL 数据库的一个关键组件,用于暂时存储事务日志(包括重做日志)的数据,以便后续写入到事务日志文件中。总之,日志缓冲区是 MySQL 数据库中用于暂时存储事务日志数据的重要组件,它在提高数据库性能、减少磁盘 I/O 开销以及支持事务的持久性方面发挥着关键作用。- 日志缓冲区用于临时存储正在进行的事务操作的相关信息,包括重做日志(Redo Log)中的条目。- 日志缓冲区的存在可以提高数据库的性能,因为它允许多个事务的日志条目在内存中缓冲,而不是立即写入到磁盘。

简单3步:微信语音转成mp3-程序员宅基地

文章浏览阅读1.7w次。ACM亚洲区域赛获奖者北漂女程序员 喜欢就关注我吧!在家人眼里,我学的专业就是打杂的。前天我的嫂子问我怎么把微信聊天语音转换成mp3格式保存分享。咔咔咔,教程来了。1,把微信语音信息保存..._微信语音转换mp3

Android 11 selinux 权限设置_android sepolicy private public-程序员宅基地

文章浏览阅读1.4w次,点赞3次,收藏19次。快速阅读框架SELinux介绍看Android怎么写?如何确认是SELinux 约束引起?怎么抓取SELinux Log?修改之后,怎么快速验证?怎么从log中提取有效信息?重点介绍参考文档架构从上层到驱动层的调用流程,但是我们重点关注sContext:注:file_contexts //系统中所有file_contexts安全上下文seapp_contexts //app安全上下文property_contexts //属_android sepolicy private public

常见的文件格式有哪些_常见文件格式类型-程序员宅基地

文章浏览阅读9.3k次,点赞14次,收藏36次。AAAC:MPGE-4高级音频编码ACC:苹果设备的专属音乐格式ACE:Ace压缩档案格式ACT:Microsoft office助手文件AIF,AIFF:音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式ANI:Windows系统中的动画光标APK:AndroidPackage /Android(安卓)安装包,APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装APS_常见文件格式类型

推荐文章

热门文章

相关标签