sql 查询每科的前三名
废话不多说,直接上脚本
CREATE TABLE [dbo].[Students](
[ID] [int] IDENTITY(1,1) NOT NULL,
[name] [nchar](20) NULL,
[kemu] [nchar](20) NULL,
[score] [int] NOT NULL,
CONSTRAINT [PK_Students] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO
insert into Students values('张三','语文',66)
insert into Students values('李四','语文',67)
insert into Students values('王五','语文',68)
insert into Students values('赵六','语文',69)
insert into Students values('天气','语文',70)
insert into Students values('王八','语文',72)
insert into Students values('幺九','语文',75)
insert into Students values('大十','语文',80)
insert into Students values('张三','数学',85)
insert into Students values('李四','数学',80)
insert into Students values('王五','数学',75)
insert into Students values('赵六','数学',69)
insert into Students values('天气','数学',68)
insert into Students values('王八','数学',67)
insert into Students values('幺九','数学',66)
insert into Students values('大十','数学',65)
insert into Students values('张三','英语',60)
insert into Students values('李四','英语',72)
insert into Students values('王五','英语',76)
insert into Students values('赵六','英语',77)
insert into Students values('天气','英语',85)
insert into Students values('王八','英语',78)
insert into Students values('幺九','英语',75)
insert into Students values('大十','英语',71)
查询语句:内层中 WHERE B.kemu = A.kemu 其实相当于 拿外层的 name 分组 group by
SELECT *
FROM Students A
WHERE name IN (SELECT TOP 3 name
FROM Students B
WHERE B.kemu = A.kemu
ORDER BY B.score DESC)
ORDER BY A.kemu, A.score DESC
运行结果:

sql 查询每科的前三名的更多相关文章
- SQL查询每个部门工资前三名的员工信息
--通用sql select deptno, ename, sal from emp e1 where ( ) from emp e2 where e2.deptno=e1.deptno and e2 ...
- sql语句查询成绩表各科前三名
--语法形式: ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2) --解释: 根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示 ...
- SQL统计每科前三名的学生的语句
偶然在论坛看到一个网友的帖子,关于他遇到一个面试题的,网站写了很多,我看了一下,结果应该是没问题的,但是为何面试官还是不满意,我想面试官可能并不是想考你真能把这道题做出来,而是看你如何简洁的通过一个s ...
- ORACLE分科目统计每科前三名的学生的语句
有个成绩表 score(student_no,Subject_no,Score)分别为学号,课程号,成绩.我想用语句查询出每科的前三名学生的学号,请各位高手教教小弟 1.创建测试语句:create t ...
- 一个学生分数表,用sql语句查询出各班级的前三名
昨天去一家公司面试,被这道题难住了,哎,又失去一次好的机会. 回来 之后就再想这个问题 表结构及数据如下:
- sql查询:部门工资前三高的员工和部门工资最高的员工
创建表:Create table If Not Exists Employee (Id int, Name varchar(255), Salary int, DepartmentId int);Cr ...
- 二、SQL系列之~常见51道SQL查询语句
[写在前面~~] [PS1:建议SQL初学者一定要自己先做一遍题目,这样才有效果~~(做题时为验证查询结果是否正确,可更改表中数据)] [PS2:文末最后一条代码整合了全部51道题目及答案~~] [P ...
- (转)经典SQL查询语句大全
(转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...
- 经典SQL查询语句大全
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
随机推荐
- 最佳实践:腾讯HTAP数据库TBase助力某省核心IT架构升级
https://mp.weixin.qq.com/s/56NHPyzx5F6QeCjuOq5IRQ 资源隔离能力: 在HTAP系统中,OLTP和OLAP业务要同时运行,两者都会消耗巨量的资源都,如果不 ...
- YII2 BUG记录
YII2 的ar类在插入数据的时候,如果类的成员属性有和字段相同的,则该字段插入不成功 示例: CONSTROLLER 层 $banner->type = '4'; //////type在mod ...
- expect 自动完成交互式程序神器
expect 安装 yum -y install expect # Centossudo apt-get install expect # Ubuntu 作用:自动填写交互式程序的值. 原理:通过读取 ...
- Python库源码学习1:Flask之app.run
先列出app.run()实现的功能,我们以debug=True的情况下进行分析. 1. web服务器,处理http请求 2. 当代码修改后,重启服务器 那么app.run()是如何实现这两个功能的呢? ...
- java Map 怎么遍历
java中遍历MAP的几种方法 Java代码 Map<String,String> map=new HashMap<String,String>(); map.put(& ...
- 批量增删改"_bulk"
除了delete以外,每个操作需要两个json字符串,语法如下:{"action":{"metadata"}}{"data"}bulk ap ...
- MyBatis学习(01)之解决mapper绑定异常
解决mapper绑定异常 HTTP Status 500 - Request processing failed; nested exception is org.apache.ibatis.bind ...
- 【JMeter】【性能测试】分布式远程服务器
jmeter分布式简单步骤说明: 1:添加远程服务器IP到配置文件 在JMETER_HOME / bin / jmeter.properties中,找到名为“ remote_hosts ” 的属性,并 ...
- windows(64位)下使用curl安装
windows(64位)下使用curl安装 转自:https://blog.csdn.net/wkj001/article/details/54889907 2017年02月06日 09:46:47 ...
- MongoDB pymongo模块
安装pymongo模块 pip install pymongo 连接mongodb代码,生成pymongo对象,传入连接服务器相关参数 ip 端口 如果使用指定的账户登录,设置要登录的账户和密码,然后 ...