SQL 如何查找一个表里,每个班级各个学科的最高分?

学生表:STUDENT(S#,SNAME,SAGE,SSEX,CLASSNO)

班级表:CLASS(CLASSNO,CLASSNAME)

课程表:COURSE(C#,CNAME,T#)

成绩表:SC(S#,C#,SCORE)

教师表:TEACHER(T#,TNAME)

SQL 创表脚本

```sql
-- Create table
create table CLASS
(
classno INTEGER not null,
classname NVARCHAR2(32)
);
-- Add comments to the columns
comment on column CLASS.classno
is '班级编号';
comment on column CLASS.classname
is '班级名称';
-- Create/Recreate primary, unique and foreign key constraints
alter table CLASS
add constraint PK_CLASS primary key (CLASSNO);

-- Create table

create table STUDENT

(

s# INTEGER not null,

sname NVARCHAR2(32),

sage INTEGER,

ssex NVARCHAR2(8),

classno INTEGER

);

-- Add comments to the columns

comment on column STUDENT.s#

is '学号';

comment on column STUDENT.sname

is '姓名';

comment on column STUDENT.sage

is '年龄';

comment on column STUDENT.ssex

is '性别';

comment on column STUDENT.classno

is '班级编号';

-- Create/Recreate primary, unique and foreign key constraints

alter table STUDENT

add constraint PK_STUDENT primary key (S#);

alter table STUDENT

add constraint FK_STUDENT_CLASS foreign key (CLASSNO)

references CLASS (CLASSNO);

-- Create table

create table TEACHER

(

t# INTEGER not null,

tname NVARCHAR2(16)

);

-- Add comments to the columns

comment on column TEACHER.t#

is '教师编号';

comment on column TEACHER.tname

is '教师姓名';

-- Create/Recreate primary, unique and foreign key constraints

alter table TEACHER

add constraint PK_TEACHER primary key (T#);

-- Create table

create table COURSE

(

c# INTEGER not null,

cname NVARCHAR2(32),

t# INTEGER

);

-- Add comments to the columns

comment on column COURSE.c#

is '课程号';

comment on column COURSE.cname

is '课程名称';

comment on column COURSE.t#

is '教师编号';

-- Create/Recreate primary, unique and foreign key constraints

alter table COURSE

add constraint PK_COURSE primary key (C#);

alter table COURSE

add constraint FK_COURSE_TEACHER foreign key (T#)

references TEACHER (T#);

-- Create table

create table SC

(

s# INTEGER,

c# INTEGER,

score INTEGER

);

-- Add comments to the columns

comment on column SC.s#

is '学号';

comment on column SC.c#

is '课程号';

comment on column SC.score

is '分数';

-- Create/Recreate primary, unique and foreign key constraints

alter table SC

add constraint FK_SC_COURSE foreign key (C#)

references COURSE (C#);

alter table SC

add constraint FK_SC_STUDENT foreign key (S#)

references STUDENT (S#);

INSERT INTO CLASS VALUES ('2019001', '火箭一班');

INSERT INTO CLASS VALUES ('2019002', '火箭二班');

INSERT INTO STUDENT VALUES ('1001', '曹操', '21', '男', '2019001');

INSERT INTO STUDENT VALUES ('1002', '貂蝉', '18', '女', '2019001');

INSERT INTO STUDENT VALUES ('1003', '袁绍', '22', '男', '2019001');

INSERT INTO STUDENT VALUES ('1004', '刘备', '23', '男', '2019002');

INSERT INTO STUDENT VALUES ('1005', '小乔', '20', '女', '2019002');

INSERT INTO STUDENT VALUES ('1006', '关羽', '21', '男', '2019002');

INSERT INTO TEACHER VALUES ('801', '叶平');

INSERT INTO TEACHER VALUES ('802', '李华');

INSERT INTO TEACHER VALUES ('803', '刘明');

INSERT INTO TEACHER VALUES ('804', '李斯');

INSERT INTO COURSE VALUES ('1', '计算机组成原理', '801');

INSERT INTO COURSE VALUES ('2', '数据结构', '801');

INSERT INTO COURSE VALUES ('3', '数据库原理及应用', '802');

INSERT INTO COURSE VALUES ('4', '计算机网络', '802');

INSERT INTO COURSE VALUES ('5', '软件工程', '803');

INSERT INTO COURSE VALUES ('6', 'C语言程序设计', '803');

INSERT INTO COURSE VALUES ('7', '人工智能', '804');

INSERT INTO COURSE VALUES ('8', '操作系统', '804');

INSERT INTO SC VALUES ('1001', '1', '61');

INSERT INTO SC VALUES ('1001', '2', '67');

INSERT INTO SC VALUES ('1001', '3', '91');

INSERT INTO SC VALUES ('1001', '4', '66');

INSERT INTO SC VALUES ('1001', '5', '95');

INSERT INTO SC VALUES ('1001', '6', '68');

INSERT INTO SC VALUES ('1001', '7', '73');

INSERT INTO SC VALUES ('1001', '8', '99');

INSERT INTO SC VALUES ('1002', '1', '94');

INSERT INTO SC VALUES ('1002', '2', '85');

INSERT INTO SC VALUES ('1002', '3', '69');

INSERT INTO SC VALUES ('1002', '4', '78');

INSERT INTO SC VALUES ('1002', '5', '70');

INSERT INTO SC VALUES ('1002', '6', '77');

INSERT INTO SC VALUES ('1002', '7', '83');

INSERT INTO SC VALUES ('1002', '8', '81');

INSERT INTO SC VALUES ('1003', '1', '77');

INSERT INTO SC VALUES ('1003', '2', '70');

INSERT INTO SC VALUES ('1003', '3', '97');

INSERT INTO SC VALUES ('1003', '4', '92');

INSERT INTO SC VALUES ('1003', '5', '65');

INSERT INTO SC VALUES ('1003', '6', '89');

INSERT INTO SC VALUES ('1003', '7', '79');

INSERT INTO SC VALUES ('1003', '8', '66');

INSERT INTO SC VALUES ('1004', '1', '70');

INSERT INTO SC VALUES ('1004', '2', '95');

INSERT INTO SC VALUES ('1004', '3', '78');

INSERT INTO SC VALUES ('1004', '4', '68');

INSERT INTO SC VALUES ('1004', '5', '72');

INSERT INTO SC VALUES ('1004', '6', '98');

INSERT INTO SC VALUES ('1004', '7', '81');

INSERT INTO SC VALUES ('1004', '8', '84');

INSERT INTO SC VALUES ('1005', '1', '93');

INSERT INTO SC VALUES ('1005', '2', '96');

INSERT INTO SC VALUES ('1005', '3', '73');

INSERT INTO SC VALUES ('1005', '4', '76');

INSERT INTO SC VALUES ('1005', '5', '85');

INSERT INTO SC VALUES ('1005', '6', '90');

INSERT INTO SC VALUES ('1005', '7', '77');

INSERT INTO SC VALUES ('1005', '8', '62');

INSERT INTO SC VALUES ('1006', '1', '84');

INSERT INTO SC VALUES ('1006', '2', '86');

INSERT INTO SC VALUES ('1006', '3', '63');

INSERT INTO SC VALUES ('1006', '4', '66');

INSERT INTO SC VALUES ('1006', '5', '60');

INSERT INTO SC VALUES ('1006', '6', '87');

INSERT INTO SC VALUES ('1006', '7', '65');

INSERT INTO SC VALUES ('1006', '8', '99');

</div>

```sql
SELECT s.classno,
c.cname,
max(sc.score)
FROM student s
LEFT JOIN sc
ON s.s# = sc.s#
LEFT JOIN course c
ON sc.c# = c.c#
GROUP BY s.classno,c.cname
ORDER BY s.classno;

SELECT  s.classno,
c.cname,
sc.score
FROM student s
LEFT JOIN sc
ON s.s# = sc.s#
LEFT JOIN course c
ON sc.c# = c.c#
ORDER BY c.cname,sc.score desc,s.s#

参考资料

SQL 如何查找一个表里,每个班级各个学科的最高分?的更多相关文章

  1. sql语句查询一个表里面无重复并且按照指定字段排序的sql语句

    SELECT a.* FROM product_template a INNER JOIN (SELECT p_id,MAX(ID) as max_id FROM product_template w ...

  2. MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?

    如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...

  3. SQL查询一个表里面某个字段值相同的数据记录

    好长时间没有用SQL了...还停留在学生时代的水平... 转: 昨天遇到个面试题:查询一个表里面某个字段值相同的数据记录,好久没有写过这种,还真的花了点时间才写出来.如表g_carddetail,有 ...

  4. sql关于对一个字段同时满足多条件判断来筛选查询

    表所有数据 查询userName为abc或xyz的 以下为本菜鸟项目中遇到的问题: 背景: /**  * wangjie 180629  *   * 学生需要查询四种可能的消息  * 1.班级管理员发 ...

  5. ThinkPHP 条件是一个表里面的两个字段比较

    ThinkPHP 条件是一个表里面的两个字段比较 今天群里有人问,thinkphp框架,条件是一个表里的两个字段,怎么查询. 然后就做了下测试: 比如查询出 手机号就是微信号 的用户: (1)首先,正 ...

  6. 【Java.Regex】使用正则表达式查找一个Java类中的成员函数

    代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...

  7. 使用oracle 的 PL/Sql 定时执行一个存储过程

    CSDN日报20170322--<关于软件研发的一些体会总结> 同步博客至 CSDN ,让更多开发者看到你的文章 看微博技术大咖解析互联网应用架构实战 使用oracle 的 PL/Sql ...

  8. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  9. c语言经典算法——查找一个整数数组中第二大数

    题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...

随机推荐

  1. lsof显示打开的文件

    lsof `which httpd` //那个进程在使用apache的可执行文件 lsof /etc/passwd //那个进程在占用/etc/passwd lsof /dev/hda6 //那个进程 ...

  2. 安装vim with python

    http://note.youdao.com/noteshare?id=4eaddfef93696451de7ff890a6af3cc4

  3. ubuntu 安装微信开发者工具

    https://github.com/cytle/wechat_web_devtools 实测:64位  32位的可以... 参考命令; 2030 sudo apt-get install wine1 ...

  4. C#获取Json字符串中的某个值

    问题描述: json数据格式{"resCode":0,"resMag":"aaa","data":[{"par ...

  5. webpack中Module build failed: Unknown word (2:1)

    在新建的webpack.config.js文件中配置好style-loader和css-loader,注意顺序为:style-loader,css-loader,less-loader,postcss ...

  6. 【AtCoder】ARC086 E - Smuggling Marbles

    [题目]E - Smuggling Marbles [题意]给定n+1个点的树(root=0),每个点可以选择放或不放弹珠,每一轮顺序进行以下操作: 1.将根节点0的弹珠加入答案. 2.每个点的弹珠移 ...

  7. 【洛谷 P4072】 [SDOI2016]征途(斜率优化)

    好久没写斜率优化板子都忘了, 硬是交了十几遍.. 推一下柿子就能得到答案为 \[m*\sum x^2-(\sum x)^2\] 后面是个定值,前面简单dp,斜率优化一下就行了. \(f[i][j]=f ...

  8. styled-components真的好吗?

    最近在学习react,然后遇到react中css该怎么写这个问题,上知乎上看了好多大牛都说styled-components好用是大势所趋. 但我自己用了感觉体验却很差,我在这里说说我为啥觉得styl ...

  9. CentOS7最小化安装连接到网络的解决方案

    周末在家想装个虚拟机学一下Hadoop啥的,因为网速小水管比较慢所以下载的是CentOS的minimal版本的: 这个版本安装完之后默认是没有安装net-tools的,也就是说ifconfig不能用: ...

  10. 简单漂亮的php验证码函数

    /* *说明:函数功能是生成验证码 * 参数说明:输入 长度,宽度,高度 */ function vcode($_code_length = , $_width = , $_height = ){ $ ...