SQL练习题:2.5(2完结)

建表

# 学生表
create table t_student
(stu_id   varchar(10),stu_name varchar(10),stu_age  datetime,stu_sex  varchar(10)
);# 课程表
create table t_t_course
(c_id    varchar(10),c_name  varchar(10),c_teaid varchar(10)
);# 教师表
create table t_t_teacher
(tea_id   varchar(10),tea_name varchar(10)
);# 成绩表
create table t_t_score
(s_stuid varchar(10),s_cid   varchar(10),s_score decimal(18, 1)
);-- 向t_student表插入数据
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('01', '赵雷', '1990-01-01', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('02', '钱电', '1990-12-21', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('03', '孙风', '1990-12-20', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('04', '李云', '1990-12-06', '男');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('05', '周梅', '1991-12-01', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('06', '吴兰', '1992-01-01', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('07', '郑竹', '1989-01-01', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('09', '张三', '2017-12-20', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('10', '李四', '2017-12-25', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('11', '李四', '2012-06-06', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('12', '赵六', '2013-06-13', '女');
insert into t_student(stu_id, stu_name, stu_age, stu_sex)
values ('13', '孙七', '2014-06-01', '女');-- 向t_t_course表插入数据
insert into t_t_course(c_id, c_name, c_teaid)
values ('01', '语文', '02');
insert into t_course(c_id, c_name, c_teaid)
values ('02', '数学', '01');
insert into t_course(c_id, c_name, c_teaid)
values ('03', '英语', '03');-- 向t_t_teacher表插入数据
insert into t_teacher(tea_id, tea_name)
values ('01', '张三');
insert into t_teacher(tea_id, tea_name)
values ('02', '李四');
insert into t_teacher(tea_id, tea_name)
values ('03', '王五');-- 向t_t_score表插入数据
insert into t_score(s_stuid, s_cid, s_score)
values ('01', '01', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('01', '02', 90);
insert into t_score(s_stuid, s_cid, s_score)
values ('01', '03', 99);
insert into t_score(s_stuid, s_cid, s_score)
values ('02', '01', 70);
insert into t_score(s_stuid, s_cid, s_score)
values ('02', '02', 60);
insert into t_score(s_stuid, s_cid, s_score)
values ('02', '03', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('03', '01', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('03', '02', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('03', '03', 80);
insert into t_score(s_stuid, s_cid, s_score)
values ('04', '01', 50);
insert into t_score(s_stuid, s_cid, s_score)
values ('04', '02', 30);
insert into t_score(s_stuid, s_cid, s_score)
values ('04', '03', 20);
insert into t_score(s_stuid, s_cid, s_score)
values ('05', '01', 76);
insert into t_score(s_stuid, s_cid, s_score)
values ('05', '02', 87);
insert into t_score(s_stuid, s_cid, s_score)
values ('06', '01', 31);
insert into t_score(s_stuid, s_cid, s_score)
values ('06', '03', 34);
insert into t_score(s_stuid, s_cid, s_score)
values ('07', '02', 89);
insert into t_score(s_stuid, s_cid, s_score)
values ('07', '03', 98);
练习
# **33. 查询学生的总成绩,并按照总成绩依次进行排名**(不保留名次空缺)
select s.stu_id, s.stu_name, SUM(SC.s_score), rank() over ( order by SUM(SC.s_score) DESC )
from t_student sinner join t_score sc on s.stu_id = sc.s_stuid
GROUP BY s.stu_id, s.stu_name;# **34. 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[60-0] 及所占百分比**
select (select Count(*) from t_score sc1 where sc1.s_score >= 85 and sc1.s_cid = co.c_id) AS '100-85',concat(FORMAT((select Count(*) from t_score sc1 where sc1.s_score >= 85 and sc1.s_cid = co.c_id) /(select Count(*) from t_score sc2 where sc2.s_cid = co.c_id) * 100, 2),'%')                                                                        AS '100-85%',(select Count(*)from t_score sc1where sc1.s_score >= 70and sc1.s_score < 85and sc1.s_cid = co.c_id)                                                        AS '85-70',concat(FORMAT((select Count(*)from t_score sc1where sc1.s_score >= 70and sc1.s_score < 85and sc1.s_cid = co.c_id) /(select Count(*) from t_score sc2 where sc2.s_cid = co.c_id) * 100, 2),'%')                                                                        AS '85-70%',(select Count(*)from t_score sc1where sc1.s_score >= 60and sc1.s_score < 70and sc1.s_cid = co.c_id)                                                        AS '70-60',concat(FORMAT((select Count(*)from t_score sc1where sc1.s_score >= 60and sc1.s_score < 70and sc1.s_cid = co.c_id) /(select Count(*) from t_score sc2 where sc2.s_cid = co.c_id) * 100, 2),'%')                                                                        AS '70-60%',(select Count(*)from t_score sc1where sc1.s_score < 60and sc1.s_cid = co.c_id)                                                        AS '60-0',concat(FORMAT((select Count(*) from t_score sc1 where sc1.s_score < 60 and sc1.s_cid = co.c_id) /(select Count(*) from t_score sc2 where sc2.s_cid = co.c_id) * 100, 2),'%')                                                                        AS '60-0%',co.c_id,co.c_name
from t_course coinner join t_score sc on sc.s_cid = co.c_idinner join t_student s on sc.s_stuid = s.stu_id
group by co.c_id, co.c_name;# 35. 查询各科成绩前三名的记录
#在where中不能直接使用窗口函数的别名需要使用子查询
SELECT *
FROM (SELECT sc.s_cid, s.*, RANK() OVER (PARTITION BY sc.s_cid ORDER BY sc.s_score) AS rFROM t_score scINNER JOIN t_student s ON sc.s_stuid = s.stu_id) ranked
WHERE r <= 3;# 36. 查询每个同学的学号、姓名、选课总数、总成绩
select s.stu_id, s.stu_name, count(*), sum(sc.s_score)
from t_student sinner join t_score sc on s.stu_id = sc.s_stuid
group by s.stu_id, s.stu_name;# **37. 查询编号是2的课程比编号是1的课程最高成绩高的学生姓名和成绩**
select s.stu_name, sc.s_score
from t_student sinner join t_score sc
on s.stu_id = sc.s_stuid
where sc.s_cid = 2and sc.s_score > (select max(sc1.s_score) from t_score sc1 where sc1.s_cid =1);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源大模型:AI 发展的未来引擎

人工智能&#xff08;AI&#xff09;正以前所未有的速度改变着我们的世界&#xff0c;而大模型作为 AI 发展的核心驱动力&#xff0c;其发展路径备受关注。在开源和闭源两条路径中&#xff0c;我更看好开源大模型&#xff0c;认为它将成为 AI 发展的未来引擎。 技术创新与协作…

4-主窗口

4-主窗口 1、简介2 菜单栏、工具栏、状态栏2.1 菜单栏2.2 QAction2.3 工具栏2.4 状态栏 3 混合方式UI设计 1、简介 QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏、多个工具栏、多个停靠控件、一个状态栏以及一个中心控件&#xff0c;是许多应用程序&…

Visual Studio 下的Qt工程无法打开 “xxx.ui“ 文件和LNK1104 无法打开文件“Qt5Cored.lib”错误

一、问题&#xff1a; VS下Qt环境准备好后&#xff0c;创建了Qt工程然后点击 Form Files 下的 “xxx.ui” 文件&#xff0c;在弹出 Qt 设计师 界面后闪退并显示如下错误&#xff1a; 二、解决 1、工具栏处依次点击&#xff1a;扩展 一> Qt VS Tools 一> options 弹出选…

网络工程师---第四十二天

1、基于子网的vlan划分配置步骤是什么&#xff1f; 2、基于端口的vlan划分配置步骤是什么&#xff1f; 3、基于MAC地址的vlan划分配置步骤是什么&#xff1f; 4、请简述无线局域网的组网方式有哪几种&#xff0c;区别是什么&#xff1f; 5、请简述堆叠、级联和集群作用和区别是…

在kaggle中的notebook 如何自定义 cuda 版本以及如何使用自定义的conda或python版本运行项目(一)

问题 第一部分 当前kaggle中带有gpu的notebook 默认的cuda 是12.1版本&#xff0c;如果我要跑一个项目是11.3的&#xff0c;如何将默认的cuda 改为自己需要的cuda 11.3 方法 step1 从官网下载需要的版本cuda run 文件&#xff08;如cuda 11.3&#xff09; 在nvidia cuda 下…

基于Netty实现安全认证的WebSocket(wss)服务端

1.Netty服务端 服务端代码参考【基于Netty实现WebSocket服务端-CSDN博客】中的两种方式都可以&#xff1b;这里用的是第一种简单方式。 新增如下逻辑&#xff1a;添加SSLHandler SSLContext sslContext SslUtil.createSSLContext("JKS","D:\\workSpace\\day…

Web(数字媒体)期末作业

一.前言 1.本资源为类似于打飞机的网页游戏 2.链接如下&#xff1a;【免费】前端web或者数字媒体的期末作业&#xff08;类似于打飞机的2D网页小游戏&#xff09;资源-CSDN文库 二.介绍文档

SAP HCM 标准程序如何定位内表赋值 ABAP DEBUG SCRIPT

Complacency is the enemy of study 学习的敌人是自己的满足。 标准内表定位代码位置!!! 不知道大家有没有尝试体会过debug标准程序,debug过程中发现SAP标准的内表不知道什么时候赋值,或者类的静态属性什么时候改变的,本文通过ABAP DEBUG SCRIPT的方式快速定位内表赋值或者类…

VM中Ubuntu16.04的下载以及ROS—kinetic的版本下载

一、Ubuntu镜像地址 转载备份一下&#xff1b; 官方下载地址&#xff08;不推荐&#xff09; https://www.ubuntu.com/downloadhttps://www.ubuntu.com/download 中科大源 Index of /ubuntu-releases/16.04/http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/ 阿里云开…

基于51单片机的电压表-数码管显示

一.硬件方案 本设计基于STC89C52单片机的一种电压测量电路&#xff0c;该电路采用ADC0832A/D转换芯片,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单, 可以测量0&#xff5e;9V的电压值,并在四位LED数码管上显示电压值。 二.设计功能 &#xff08;1&…

工业网关设备:HiWoo Box网关

在数字化、智能化的工业浪潮中&#xff0c;工业网关以其卓越的性能和广泛的应用场景&#xff0c;成为了工业互联的核心驱动力。作为一款高效、稳定、智能的工业网关设备&#xff0c;HiWoo Box网关不仅实现了工业现场设备与网络的高效连接&#xff0c;更为企业提供了智能化的数据…

使用 Spring 事件监听机制实现跨模块调用

之前一个项目&#xff0c;有两个模块&#xff0c;A 模块需要依赖 B 模块&#xff0c;但现在 B 模块有地方需要调用 A 模块的方法&#xff0c;如果直接依赖&#xff0c;又会产生循环依赖问题。最终选择使用 spring 的事件监听来解决该问题。 思路就是&#xff0c;B 模块去发布事…

JAVA ---JAVA运算符详解

运算符:对操作数进行操作的符号 运算符分为:算术运算符 关系运算符 逻辑运算符 位运算符 移位运算符 条件运算符 1.算术运算符 基本四则运算符 增量运算符 自增自减运算符 1.1 基本四则运算符&#xff1a;加减乘除模( - * / %) int a 20; int b 10; System.out.println(a…

【linux】linux中免交互命令expect原理与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

智能客服新突破:大型模型训练助力提升客户服务体验

项目场景&#xff1a;训练大模型智能客服 智能客服新方法在金融服务领域的科技前沿应用 ** 一、 引言 随着科技的飞速发展&#xff0c;智能客服作为金融服务领域的一大创新点&#xff0c;正在逐渐改变传统的客户服务模式。特别是在自然语言处理&#xff08;NLP&#xff09;等…

【C++】多态:编程中的“一人千面”艺术

目录 一、多态的概念二、多态的定义及实现1.多态的构成条件2.虚函数的重写2.1 什么是虚函数&#xff1f;2.2 虚函数的重写是什么&#xff1f;2.3 虚函数重写的两个例外2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 三、抽象类3.1 概念3.2 接口继承和实现…

重学java 47.集合 ② 迭代器

金榜题名&#xff0c;前程似锦 —— 24.5.27 一、迭代器的介绍和使用 1.概述 Iterator接口 2.主要作用 遍历集合 3.获取 Collection中的方法&#xff1a; Iterator<E> iterator() 4.方法 boolean hasNext() —> 判断集合中有没有下一个元素 E.next() —> 获取下一个…

《QT实用小工具·六十六》基于QT开发的界面收缩栏

1、概述 源码放在文章末尾 该项目实现了一个界面收缩栏的效果&#xff0c;该收缩栏包含如下功能&#xff1a; 1、可以在收缩栏中添加若干个界面 2、鼠标点击收缩栏可以展开或收起界面 3、鼠标拖动收缩栏可以和其他界面互换位置 项目demo演示如下所示&#xff1a; 使用方式&…

iptables 规则参数

本文只是记录常用的命令行规则&#xff0c;如果想了解和学习 iptables&#xff0c;请移步《IPtables》 每一条匹配规则都可以使用 ! 进行取反。如 ! --dport 22 表示所有目标端口不为 22 的请求 下表为链和表的对应关系 ChainTablePREROUTINGraw表&#xff0c;mangle表&…

小甲零基础入门学习Python(全96集)

介绍 本课程旨在为学者提供关于Python 3.x版本的基础教学&#xff0c;确保学员能够熟练掌握其语法结构。通过整合讲师的实际工作经验&#xff0c;课程内容不仅覆盖了Python的应用技巧&#xff0c;还深入讨论了相关的数据结构知识。为了增强学习效果&#xff0c;我们精心准备了…