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

2023-11-18

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

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

1306719-20190416134205949-2020440056.png

班级表:CLASS(CLASSNO,CLASSNAME)

1306719-20190416134234061-1208109946.png

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

1306719-20190416134215323-1924915929.png

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

1306719-20190416134221399-1133099177.png

教师表:TEACHER(T#,TNAME)

1306719-20190416134228853-1267950542.png

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');
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;

1306719-20190416140822443-435301957.png

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#

参考资料

转载于:https://www.cnblogs.com/hglibin/p/10128197.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 在动态事件处理程序中引用“this”

    在我的 myClass 类中 我使用 Reflection Emit 为 myClass 类成员之一动态编写事件处理程序 我已经成功地做到了这一点 现在 我想修改事件处理程序以调用 myClass 类中的实例方法之一 但是 我无法弄清楚如何
  • C# 创建函数队列

    我写了一个名为 QueueManager 的类 class QueueManager Queue functionsQueue public bool IsEmpty get if functionsQueue Count 0 return
  • 从 future 中检索值时的 SIGABRT

    我在使用 C 11 future 时遇到问题 当我打电话时wait or get 关于返回的未来std async 程序接收从mutex标头 可能是什么问题呢 如何修复它 我在 Linux 上使用 g 4 6 将以下代码粘贴到 ideone
  • 导出类时编译器错误

    我正在使用 Visual Studio 2013 但遇到了一个奇怪的问题 当我导出一个类时 它会抛出 尝试引用已删除的函数 错误 但是 当该类未导出时 它的行为会正确 让我举个例子 class Foo note the export cla
  • 如何在 Asp.net Gridview 列中添加复选框单击事件

    我在 asp 中有一个 gridview 其中我添加了第一列作为复选框列 现在我想选择此列并获取该行的 id 值 但我不知道该怎么做 这是我的 Aspx 代码
  • Paradox 表 - Oledb 异常:外部表不是预期的格式

    我正在使用 Oledb 从 Paradox 表中读取一些数据 我遇到的问题是 当我将代码复制到控制台应用程序时 代码可以工作 但在 WinForms 中却不行 两者都以 x86 进行调试 我实际上只是复制代码 在 WinForms 应用程序
  • 序列化和反序列化 Visual Studio 解决方案文件 - 或以编程方式编辑?

    我想以编程方式添加和删除项目 解决方案文件夹和其他项目 例如解决方案的资源文件 但我不确定最好的方法是什么 对于那些不知道的人 高度简化 解决方案文件 sln 通常如下所示 Microsoft Visual Studio Solution
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • 默认值 C# 类 [重复]

    这个问题在这里已经有答案了 我在控制器中有一个函数 并且我收到表单的信息 我有这个代码 public Actionresult functionOne string a string b string c foo 我尝试将其转换为类似的类
  • 我可以仅在少数情况下关闭模拟吗

    我有一个始终使用模拟的应用程序 但是 当用户以管理员身份登录时 一些操作需要他们写入服务器本身 现在 如果这些用户在实际服务器上没有权限 有些用户没有 则不会让他们写入 我想做的是关闭几个命令的模拟 有没有办法做这样的事情 using Ho
  • 编译器错误“错误:在文件范围内可变地修改了‘字符串’”

    考虑 include
  • 您可以在一个 Windows Azure 实例上部署多个 Web 应用程序吗?

    是否可以在一个 windows azure 小型计算实例中运行一堆 Web 应用程序 我正在考虑使用 Azure 作为放置一堆处于开发和非生产状态的项目 Web 应用程序 的地方 有些实际上已经被封存了 但我想在某个地方有一个活跃的实例 我
  • 使用 AdHocWorkspace 会导致“不支持语言‘C#’”。

    在VS2015中使用Microsoft CodeAnalysis CSharp Workspaces的RC2 这段代码会抛出异常 var tree CSharpSyntaxTree ParseText var workspace new A
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • “int i=1,2,3”和“int i=(1,2,3)”之间的区别 - 使用逗号运算符的变量声明[重复]

    这个问题在这里已经有答案了 int i 1 2 3 int i 1 2 3 int i i 1 2 3 这些说法有什么区别 我无法找出任何具体原因 Statement 1 Result Compile error 运算符的优先级高于 运算符
  • 纯虚函数可能没有内联定义。为什么?

    纯虚函数是那些虚函数并且具有纯说明符 0 第 10 4 条第 2 款C 03 的内容告诉我们什么是抽象类 顺便说一句 如下 注意 函数声明不能 同时提供纯说明符和定义 尾注 示例 struct C virtual void f 0 ill
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能
  • C++ [Windows] 可执行文件所在文件夹的路径[重复]

    这个问题在这里已经有答案了 我需要访问一些文件fstream在我的 Windows 上的 C 应用程序中 这些文件都位于我的exe文件所在文件夹的子文件夹中 获取当前可执行文件的文件夹路径的最简单且更重要的 最安全的方法是什么 Use 获取
  • 无法使 Polly 超时策略覆盖 HttpClient 默认超时

    我正在使用 Polly 重试策略 并且正如预期的那样 在重试过程中HttpClient达到 100 秒超时 我尝试了几种不同的方法来合并 Polly 超时策略 将超时移至每次重试而不是总计 但 100 秒超时仍然会触发 我读过大约 5 个

随机推荐

  • c99编译报错改用gnu99

    使用c99编译出警告信息 implicit declaration of function usleep 按常规来讲 出现 implicit declaration of function xxxx 是因为头文件未包含导致的 但是uslee
  • 在servlet中 PrintWriter out=response.getWriter()

    1 从HttpServletResponse中get一个PrintWriter 2 打个通俗的比方就是通过HttpServletResponse对象得到一支笔 然后就可以用out print 方法在网页上写任何你想显示的内容 out pri
  • extern “C“ __declspec(dllexport)是什么意思

    如果DLL是提供给VC 用户使用的 你只需要把编译DLL时产生的 lib提供给用户 它可以很轻松地调用你的DLL 但是如果你的DLL是供其他程序如VB delphi 以及 NET用户使用的 那么会产生一个小麻烦 因为VC 对于 declsp
  • Tensorflow初步之非线性回归

    神经网络 输入 1个神经元 中间层 10个神经元 输出 1个神经元 一 创造二次函数并加入噪声 import tensorflow as tf import matplotlib pyplot as plt import numpy as
  • 干货丨7款易上手C语言编程软件推荐

    C语言是一门历史很长的编程语言 其编译器和开发工具也多种多样 其开发工具包括编译器 现举几个开发工具供大家选择 当然也要根据自己的操作系统来选择适合自己的开发工具 好多刚开始接触c语言的朋友都想知道用上面软件开发c语言比较好 一般来说微软的
  • node版本升级:与node-sass、sass-loader版本不兼容问题

    npm WARN deprecated har validator 5 1 5 this library is no longer supported npm WARN deprecated uuid 3 4 0 Please upgrad
  • 浅谈人工智能:现状、任务、构架与统一

    浅谈人工智能 现状 任务 构架与统一 原创 2017 11 02 朱松纯 目录 引言 第一节 现状 正视现实 第二节 未来 一只乌鸦给我们的启示 第三节 历史 从 春秋五霸 到 战国六雄 第四节 统一 小数据 大任务 范式与认知构架 第五节
  • 《动手学深度学习 Pytorch版》 7.3 网络中的网络(NiN)

    LeNet AlexNet和VGG的设计模式都是先用卷积层与汇聚层提取特征 然后用全连接层对特征进行处理 AlexNet和VGG对LeNet的改进主要在于扩大和加深这两个模块 网络中的网络 NiN 则是在每个像素的通道上分别使用多层感知机
  • nginx 配置ssl后配置websockt

    1 前言 这里以Vue 和 nginx 1 22 0 为例 在nginx配置好ssl为前提下 2 代码 vue 连接路径 state ws new WebSocket wss ssl绑定域名 端口号 ws mediaToChatRoom 端
  • 一个参数一张Excel表,玩转Pandas的read_excel()表格读取

    作者 黄伟呢 来源 数据分析与统计学之美 我觉得很有必要讲述这个文章 进行数据处理的第一步就是Python数据读取 但是你可能没想到 在进行数据读取的同时 我们其实可以配合相关参数做很多事儿 这对于后续的数据处理都是极其有帮助 read e
  • 单元测试的策略

    1 逻辑覆盖 2 循环覆盖 3 同行评审 4 桌前检查 5 代码走查 6 代码评审 7 静态数据流分析 mock 对代码中某些不容易获取的对象创建虚拟对象来测试 stub 桩函数是代替某些被调用了但是没有编写代码 一般在增量迭代自低向上的过
  • Cloud Ace 进军南非——旨在将 Google Cloud 市场扩展到非洲最大的经济体

    本文由Cloud Ace整理发布 Cloud Ace是谷歌云全球战略合作伙伴 拥有 300 多名工程师 也是谷歌最高级别合作伙伴 多次获得 Google Cloud 合作伙伴奖 作为谷歌托管服务商 我们提供谷歌云 谷歌地图 谷歌办公套件 谷
  • [经验] 轻松解读PID控制算法的三种参数的自整定方法

    轻松解读PID控制算法的三种参数的自整定方法 机器人论坛 电子技术论坛 广受欢迎的专业电子论坛 elecfans com
  • MFC实用功能技术——窗口跳转

    MFC系列 0 MFC简易入门基础 1 MFC实用功能技术 窗口跳转 2 MFC实用功能技术 下拉列表添加值 实现的效果是从一个对话框 点击控件能跳转到另一个对话框 实现记录 看了很多别人的博客 要不是太简单自己不懂 要不是实现的有区别 所
  • 【经典】JAVA线程池

    JAVA多线程的五个状态 Running 运行态 该状态下线程池能够接受新的任务 Shutdown 该状态下不接受新的任务 但会继续处理已经添加的任务 Stop 该状态下不接受新的任务 并且会中断正在执行的任务 同时删除未处理的任务 Tid
  • 我国关税

    https zaq us tariff
  • bash: ifconfig: 未找到命令

    Linux CentOS 7 系统使用ifconfig命令不能使用 第一步 尝试安装插件 输入命令 yum install ifconfig 第二步 搜索可用插件 输入命令 yum search ifconfig 第三步 安装对应版本插件工
  • UNIAPP之IOS离线打包

    最新iOS平台SDK下载 https nativesupport dcloud net cn AppDocs download ios 下载SDK解压找到SDK点击打开此文件 HBuilder Hello xcodeproj 打开xcode
  • 【论文速递】CVPR2022 - 用于半监督物体检测的尺度等效蒸馏

    论文速递 CVPR2022 用于半监督物体检测的尺度等效蒸馏 论文原文 Scale Equivalent Distillation for Semi Supervised Object Detection 获取地址 https ieeexp
  • SQL 如何查找一个表里,每个班级各个学科的最高分?

    SQL 如何查找一个表里 每个班级各个学科的最高分 学生表 STUDENT S SNAME SAGE SSEX CLASSNO 班级表 CLASS CLASSNO CLASSNAME 课程表 COURSE C CNAME T 成绩表 SC