mysql查询各科前3_MySQL 查询各科前三的数据
方法一:
SELECT sc.*,c.`
Cname` ,COUNT(sc.C)
FROM sc
LEFT JOIN sc a
ON sc.C = a.C AND sc.score >= a.score
LEFT JOIN course c
ON sc.C = c.C
WHERE sc.C = c.C
GROUP BY
sc.C,sc.S,sc.score
HAVING COUNT(sc.C)>=4
ORDER BY a.C,a.score DESC
解析:
先copy 一个sc 表中的数据,与原sc 进行对比。统计每个score 大于其他数据的计数。再按sc.C,sc.S进行分组
SELECT sc.*,COUNT(sc.C)
FROM sc
LEFT JOIN sc a
ON sc.C= a.C AND sc.score >=a.score
GROUP BY sc.C,sc.S
可以看到,第一行数据的count计数为 6,由于我们要取每科前三名,sc表中共有student S编号7个,
自身不纳入count进行计数,则为6个需要取出前3--计数大于3的值。
SELECT sc.*,COUNT(sc.C)
FROM sc
LEFT JOIN sc a
ON sc.C= a.C AND sc.score >=a.score
GROUP BY
sc.C,sc.S,sc.score
HAVING COUNT(sc.C)>3ORDER BY a.C,a.score DESC
方法二:
SELECT a.* FROM
sc a
WHERE
(SELECT COUNT(*)
FROM sc
WHERE sc.C =a.C
AND a.score
ORDER BY a.C,a.score DESC
解析:
与方法一同理,复制一个表进行count计数
原文:https://www.cnblogs.com/jescs/p/12186019.html
mysql查询各科前3_MySQL 查询各科前三的数据相关推荐
- mysql查询职位大于3_Mysql查询语句
查询语句 单表查询 1.1 全表查寻 select * from employee; 1.2 指定字段查询 查询职员表中所有职员姓名和入职时间 select empname,hirdate from ...
- 查询每个歌手下载量最大的三条数据
假设有一个表叫SongsTop,是歌曲下载情况的记录. Star,SongName,Hot 周杰伦,乔克叔叔,2861 周杰伦,稻香,4842 周杰伦,兰亭序,2656 周杰伦,流浪诗人,1568 S ...
- sql查询成绩最高分_sql查询各科成绩前三名----详述过程,思路清晰不烧脑!
一.建表造数据 建表: create table scores( name varchar(100), subject varchar(100), score int ); 插入数据: insert ...
- Javaweb15==mysql+mybatis+servlet+axios+fasetjson+vue+elementUI前后端分离,实现列表后端分页、模糊查询后分页、新增、单一/批量删除、修改
难点:模糊查询后再次分页,并可以选择页数. 最终环境配置: maven3.8:依赖包管理 IDEA2021+JDK8+mysql connector java5+Mysql5+mybatis3.5:从 ...
- 【Mysql】Sql分组查询后取每组的前N条记录
目录 一.背景 二.实战解析 三.总结 一.背景 最近,在开发中遇到个功能需求.系统有个资讯查询模块,要求资讯按照卡片形式展示.如下图: 按照项目组展示卡片,每个项目组展示阅读量最多的TOP2. 需求 ...
- MySQL查询最大值(最小值)或前n个最大(最小)值的方法分析
在实际中,我们可能会有这样的需求,就是从数据库中查出某个字段的最大值或最小值,或者查出前n个最大(最小)值.例如,查出某个学生成绩中最好的一个或者查出排名在前5名的学生成绩等.下面简要给出一些示例查询 ...
- mysql查询每个部门工资最高的员工信息_SQL简单面试题:查询每个部门工资最高的前10位员工...
前段时间同事突然甩了一个SQL面试题给我,题目是需要查询每个部门工资最高的前10位员工.想着查每个部门的最高还好,用max语句就可以搞定,这是要取前十.... 快速构建了一下思路,查了一下有没有类似的 ...
- Hive查询各自区组的money排名前十的账号
有一个账号表如下,请写出SQL语句,查询各自区组的money排名前十的账号(分组取前10) 1)建表(MySQL) CREATE TABLE `test_ten_account` (`dist_id` ...
- SQL练习题_ 查询每个部门工资最高的前两名的姓名和部门名称【多测师_何sir】
查询每个部门工资最高的前两名的姓名和部门名称 第一种解决方案: 第二种解决方案: SQL练习题: 假设一个部门有4个人,A,B,C,D A的工资=10000 B的工资=9000 C的工资=8000 D ...
最新文章
- shell介绍,命令历史,命令补全和别名 ,通配符, 输入输出重定向
- 人工智能电磁车模如何入手?
- 做excel的时候要快速按照纬度的角度来分析构建:一个词语“纬度”
- 推荐一个快速反射调用的类
- 密码学数字信封的介绍
- poj 1015(dp)
- 快递官网漏洞泄露 1400 万用户信息
- 机器学习数据特征归一化的目的及方式
- Win2D 官方文章系列翻译 - DPI (每英寸点数)和 DIPs(设备独立像素)
- Url 助手类(Url Helper)
- yandex安装插件教程,研究了一下午终于可以用了
- 视频教程-webpack基础和完整项目脚手架搭建教程-JavaScript
- 软考软件设计师下午真题-面向对象的程序设计与实现-享元设计模式(2021年下半年试题六))Java代码讲解
- IdentityServer4 去掉验证
- 学习日志-《微习惯》心得
- Java8新特性三:常用的函数式接口(Supplier,Consumer,Predicate,Function)
- java 查找英语单词相似度,用于单词匹配,法1
- 洛谷 P1378 油滴扩展
- Unity UI Toolkit学习笔记-EditorWindow
- win7查看隐藏文件夹