`

sql 查询出每个科目成绩第一的学生信息

 
阅读更多

一次性查询出每个科目的成绩第一的学生,在SQL   SERVER中建立下表,查询出每个科目成绩第一的学生信息.
ID   自动编号
cj   成绩
km   科目

 

 

declare @t table(id int,cj int,km varchar(10))
insert  @t  
select   1,            60,            '01 '
union   all   select   2,             69,         '01 '
union   all   select   3,             70,         '02 '
union   all   select   4,             79,         '02 '
union   all   select   5,             80,         '03 '
union   all   select   6,             89,         '03 '
union   all   select   7,             89,         '03 '

 

--成绩并列时只取一个
select * from @t a
where a.id=(select top 1 id from @t b where b.km=a.km order by b.cj desc,b.id desc)


--成绩并列时全取
select a.* from @t a ,@t b
where a.km=b.km and b.cj<a.cj

 

select * from @t a
where exists(select 1 from @t b where b.km = a.km and b.cj < a.cj)

 

select * from @t a
where a.cj=(select max(b.cj) from @t b where b.km = a.km)

 

分享到:
评论

相关推荐

    相关表及SQL代码

    在这个场景中,我们可能有一个包含学生成绩的数据表,其中可能有"分数"或"等级"这样的字段。 首先,我们需要理解数据表的结构。假设我们有一个名为`grades`的表,它可能有以下字段: 1. `student_id`: 学生的唯一...

    在Sql Sever 2008 中 查询每门课程的前3名

    第一次应用是找出特定科目(SubjectNo)的前3名成绩,第二次应用则用于获取所有科目的前3名。 ```sql SELECT distinct b.* FROM result AS r CROSS APPLY( SELECT TOP(3) * FROM Result WHERE r.SubjectNo = ...

    Visual+Studio+2005制作学生成绩管理系统

    "Score"表存储学生成绩信息,如学生ID、科目、分数等。 2. 数据库连接:在项目中添加ADO.NET数据源,连接到SQL Server数据库,并创建DataSet和DataTable对象以供程序使用。 四、界面设计 1. 主界面:设计一个主窗口...

    python课程设计:学生成绩管理系统

    在这个学生成绩管理系统中,PyMySQL用于建立数据库连接,执行SQL查询,如插入、更新、删除和查询学生分数,从而实现数据的存储和检索。 3. 数据库操作: 在数据库方面,虽然未明确指定数据库类型,但通常在Python...

    sql学生成绩管理系统课程设计数据库.doc

    在本次的SQL学生成绩管理系统课程设计中,我们主要关注的是如何利用数据库技术来实现一个高效、可靠且易于操作的成绩管理平台。以下是针对这个项目的关键知识点的详细说明: **1. 需求分析** 需求分析是任何系统...

    学生成绩(VB.Net)

    2. **数据结构**:在系统中,学生信息和成绩可能存储在类或结构中,每个类或结构代表一个学生,包含姓名、学号、科目成绩等属性。同时,可能会有一个列表或数组来保存所有学生对象,便于遍历和操作。 3. **数据持久...

    MFC做的简单学生成绩管理系统

    在**文件名称列表**中提到的"Student_1"可能是指系统的第一个学生数据文件,或者是一个特定的数据库表名,表示系统可能将每个学生的信息单独存储在一个文件中,或者以这样的格式来组织和管理数据库记录。这也表明,...

    学生成绩管理系统 项目 源代码

    学生成绩管理系统是一种常见的信息化应用,它主要用于教育机构或学校管理学生的成绩数据,提供便捷的成绩录入、查询、统计和分析等功能。在这个项目中,我们有四个不同小组的源代码,分别来自邓道远团队以及史文修...

    不定长的select交叉表查询,而且不用游标 sql 行列转化

    2. **构建动态SQL**:根据第一步中获取到的列名,动态构建SQL语句,使得每个科目名称都能对应到一个列上。 3. **执行动态SQL**:使用数据库提供的执行动态SQL的方法来运行构建好的SQL语句。 下面是一个具体的实现...

    学生信息管理系统设计报告

    5. 成绩管理:管理每个班级的课程成绩,支持录入、删除、修改、查找和报表输出,包括学生姓名、所属班级、课程名、成绩和备注。 6. 系统管理:维护系统运行和安全性,包括用户管理、密码修改、重新登录等功能,保障...

    SQL面试题目-sqlServer

    这里我们使用了两条SELECT语句,第一条SELECT语句查询出所有大于等于 80 分的学生姓名,然后使用NOT IN语句排除这些学生姓名。 题目 2: 学生表删除除了自动编号不同,其他都相同的学生冗余信息 答案:delete ...

    s2 sql第一次内测试题

    2. **聚合函数(GROUP BY)**:可以按科目、年龄或性别分组,计算每个组的平均分数、最高分、最低分等统计信息。 3. **子查询(Subquery)**:找出考试平均分最高的学员,或者在特定科目上得分超过某一阈值的学员。 ...

    mysql server sql面试题

    - Oracle的解决方案中,使用了`LEAD()`窗口函数来获取同一名称下下一年的年份,以及`RANK()`函数来标识每个组的第一行。窗口函数在处理排序数据时非常有用,能提供行间的关系信息,比如当前行与其前后行的关系。 ...

    sql面试题库

    这里使用了`GROUP BY`子句结合`MIN()`函数来找出每个组内自动编号最小的记录,并通过`NOT IN`来删除其他重复记录。 ### 3. 显示所有可能的比赛组合 题目描述了一个包含球队名称的`department`表,并要求用一条SQL...

    php+mysql学生成绩查询(系统).zip

    4. 数据库设计:在学生成绩查询系统中,数据库设计包括了学生表、课程表、成绩表等多个实体,每个实体对应一个数据库表,实体之间的关系通过外键关联。例如,学生表包含学生ID、姓名等字段,成绩表则记录学生ID、...

    sqlserver面试题

    这个问题涉及到删除重复记录,但保留每个唯一组合的第一条记录。SQL语句如下: ```sql DELETE tablename WHERE 自动编号 NOT IN (SELECT MIN(自动编号) FROM tablename GROUP BY 学号,姓名,课程编号,课程...

    VB学生成绩管理器设计

    1. 数据录入:该功能允许用户输入学生的个人信息,包括姓名、学号,并为每个学生添加多科目的成绩。这通常通过文本框和下拉菜单来实现,用户可以选择科目并输入分数。 2. 数据展示:程序应有一个清晰的界面,展示...

    学生成绩管理系统

    开发者会创建一个或多个表来存储学生信息和成绩,每个表由一系列字段组成,如学生ID、姓名、科目、分数等。通过SQL语句,这些操作(查询、修改、删除和排序)可以在数据库上执行。例如,一个简单的查询语句可能是...

Global site tag (gtag.js) - Google Analytics