【头歌系统数据库实验】实验8 SQL的复杂多表查询-2

news2024/12/22 19:36:11

目录

第1关:基于派生表查询每个队员解答中超过他平均memory的user_id及题目编号problem_id

第2关:用ANY/ALL实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手

第3关:用聚集查询实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手

第4关:用ANY/ALL实现查询2019级选手所有比2020级选手注册时间都早的选手信息

第5关:用聚集查询实现查询2019级选手所有比2020级选手注册时间都早的选手信息

第6关:用 NOT EXISTS 实现查询至少参与过"202002020217"选手参与过的所有比赛的选手信息

第7关:求至少用了供应商 S1所供应的全部零件的工程号 JNO


如果对你有帮助的话,不妨点赞收藏评论一下吧,爱你么么哒😘❤️❤️❤️

第1关:基于派生表查询每个队员解答中超过他平均memory的user_id及题目编号problem_id

任务描述

基于派生表查询每个队员解答中超过他平均memory的user_id及题目编号problem_id(查询结果无需去重) 注意:按课本的别称表名+列名的方式,mysql8.0可以过,但oj题用的是mysql5.7,不能通过,所以仅用表名别称。

相关知识

solution:选手提交的题目解答 solution表如下图(仅显示前几条):

,

现已构建solution表,结构信息如下:

,


开始你的任务吧,祝你成功!

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########

select solution.user_id, problem_id 
from solution
join (select 
user_id, avg(memory) 
as am 
from solution 
group by user_id) uam
on solution.user_id = uam.user_id and memory > am;

########## End ##########

第2关:用ANY/ALL实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手

任务描述

用ANY/ALL实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间(reg_time)早即可的选手信息

相关知识

users为选手信息表; users表如下图(仅显示前几条):

,

现已构建users表,结构信息如下:

,


开始你的任务吧,祝你成功

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
select user_id, reg_time, name 
from users
where user_id like '2019%' and reg_time < any(
    select reg_time 
    from users 
    where user_id like '2020%');


########## End ##########

第3关:用聚集查询实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手

任务描述

用聚集查询实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间(reg_time)早即可的选手信息

相关知识

users为选手信息表; users表如下图(仅显示前几条):

,

现已构建users表,结构信息如下:

,


开始你的任务吧,祝你成功

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
select user_id, reg_time, name 
from users
where user_id like '2019%' and reg_time < (
    select max(reg_time) 
    from users 
    where user_id like '2020%');

########## End ##########

第4关:用ANY/ALL实现查询2019级选手所有比2020级选手注册时间都早的选手信息

任务描述

用ANY/ALL实现查询2019级选手所有比2020级选手注册时间都早的选手信息

相关知识

users为选手信息表; users表如下图(仅显示前几条):

,

现已构建users表,结构信息如下:

,


开始你的任务吧,祝你成功!

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
select user_id, reg_time, name 
from users
where user_id like '2019%' and reg_time < all(
    select reg_time
    from users
    where user_id like '2020%'
);

########## End ##########

第5关:用聚集查询实现查询2019级选手所有比2020级选手注册时间都早的选手信息

任务描述

聚集查询实现查询2019级选手所有比2020级选手注册时间都早的选手信息

相关知识

users为选手信息表; users表如下图(仅显示前几条):

,

现已构建users表,结构信息如下:

,


开始你的任务吧,祝你成功

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
select user_id, reg_time, name 
from users
where user_id like '2019%' and reg_time < (
    select min(reg_time)
    from users
    where user_id like '2020%'
);

########## End ##########

第6关:用 NOT EXISTS 实现查询至少参与过"202002020217"选手参与过的所有比赛的选手信息

任务描述

用 NOT EXISTS 实现查询至少参与过"202002020217"选手参与过的所有比赛的选手信息,contest_id不为NULL

相关知识

1、users为选手信息表; users表如下图(仅显示前几条):

,

现已构建users表,结构信息如下:

,

2、solution为选手提交的题目解答 solution表如下图(仅显示前几条):

,

现已构建solution表,结构信息如下:

,


开始你的任务吧,祝你成功!

USE `sqlexp-sztuoj`;
#请在此处添加实现代码
########## Begin ##########
select u.user_id, u.reg_time, u.name 
from users u
where not exists(
    select contest_id 
    from (
        select s.contest_id 
        from solution s
        where s.user_id = '202002020217' and s.contest_id is not null) s1
    where not exists(
        select user_id, contest_id 
        from solution s2
        where s1.contest_id = s2.contest_id and u.user_id = s2.user_id)
);


########## End ##########

第7关:求至少用了供应商 S1所供应的全部零件的工程号 JNO

任务描述

求至少用了供应商 S1所供应的全部零件的工程号 JNO

相关知识

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:

,

现已构建SPJ表,结构信息如下:

,


开始你的任务吧,祝你成功!

USE mydata;
#请在此处添加实现代码
########## Begin ##########
select JNO
from SPJ
where PNO ='P1' and JNO in
(select JNO
 from SPJ
 where PNO='P2');
########## End ##########

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

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

相关文章

使用Windows10的OneDrive应用程序,让文件管理上一个台阶

这篇文章解释了如何通过在文件资源管理器和OneDrive应用程序之间轮换&#xff0c;将OneDrive与Windows 10一起使用。 使用文件资源管理器进行组织 你不必将所有OneDrive文件都保存在硬盘上&#xff0c;事实上&#xff0c;你可以将任意数量的文件留在云中&#xff08;也就是微…

精通 JavaScript 数据处理大全:手写代码从入门到精通

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;JavaScript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript- 数据处理 目录 1. 实现日期格式化函数 2. 交换a,b的值&#xff0c;不…

虚幻学习笔记11—C++结构体、枚举与蓝图的通信

一、前言 结构体的定义和枚举类似&#xff0c;枚举的定义有两种方式。区别是结构体必须以“F”开头命名&#xff0c;而枚举不用。 额外再讲了一下蓝图生成时暴露变量的方法。 二、实现 2.1、结构体 1、定义结构体 代码如下&#xff0c;注意这个定义的代码一定要在“UCLASS()”…

南京大学-软件分析-课程03-数据流分析

1. Overview of Data Flow Analysis Data如何在CFG上流动&#xff1f; 应用程序特定的数据是如何通过 CFG&#xff08;程序的控制流图&#xff09;的节点&#xff08;基本块/语句&#xff09;和边&#xff08;控制流&#xff09;流动的。 may analysis: outputs information …

Synchronized 优化

目录 前言 重点 一、 轻量级锁 二、锁膨胀 三、重量锁 四、偏向锁 五、其他优化 我的其他博客 前言 Java synchronized 是一种机制&#xff0c;可以保证多个线程在访问共享资源时的同步性。synchronized 关键字可以用于方法或代码块上&#xff0c;当一个线程获取了这个对…

Http模块

Http模块 1.创建http服务 //导入http模块 const http require(http)//创建服务对象 const server http.createServer((request,response)>{response.end(Hello HTTP Server) })// 监听端口&#xff0c;启动服务 server.listen(9000,()>{console.log(服务已启动....);…

代理模式:解析对象间的间接访问与控制

目录 引言 理解代理模式 不同类型的代理模式 代理模式的应用场景 代理模式的优缺点 优点 缺点 实际案例&#xff1a;Java中的代理模式应用 结语 引言 代理模式是软件设计模式中的一种结构型模式&#xff0c;旨在为其他对象提供一种代理以控制对这个对象的访问。它允许你…

【Linux】less 命令使用

less命令 less 与 more 类似。 less是一个非常常用的文本查看工具&#xff0c;它可以用于查看任意大小的文本文件&#xff0c;支持滚动翻页、搜索、标记等功能。在本文中&#xff0c;我们将详细介绍less命令的用法、参数和实例&#xff0c;并对其背后的原理和相关技术进行简要…

局域网上网行为监控软件有哪些(功能介绍大全)

作为老板的你&#xff0c;是不是经历过这些事情&#xff1a; 员工上班时间总是利用公司电脑摸鱼&#xff1b;公司的网络被人占用&#xff1b;员工上网行为异常&#xff1b;员工的工作状态不饱和&#xff0c;总是懒散…… 不可否认&#xff0c;现在的员工越来越难管理&#xf…

张驰咨询:数据驱动的质量改进,六西格玛绿带在汽车业实践

尊敬的汽车行业同仁们&#xff0c;您是否曾面临生产效率低下、成本不断攀升或顾客满意度下降的困扰&#xff1f;本期专栏&#xff0c;我们将深入探讨如何通过六西格玛绿带培训&#xff0c;在汽车行业中实现过程优化和质量提升。 汽车行业的竞争日趋激烈&#xff0c;致力于提供…

vue 实现点击复制文本到剪贴板

vue 实现点击复制文本到剪贴板 共四种方法 1. navigator.clipboard.writeText该方法需要在安全域下才能够使用&#xff0c;比如&#xff1a;https 协议的地址、127.0.0.1、localhost <template><div><el-button type"primary" click"btn1"…

互联网公司,哪个部门才是鄙视链最顶端?

文章目录 每日一句正能量前言财务部法务部公关部销售部前台行政IT部创意部后记 每日一句正能量 我们必须在失败中寻找胜利&#xff0c;在绝望中寻求希望。 前言 在互联网公司中&#xff0c;不同职位的鄙视链是存在的。有些职位享有高尚的地位&#xff0c;而有些则被看作是次要…

弧光保护能应用在船舶中压配电板?

摘要&#xff1a;船舶中压配电板弧光故障导致的设备损坏和停电事故&#xff0c;不仅会造成较大的经济损失&#xff0c;而且严重影响船舶电站的安全稳定运行&#xff0c;威胁船舶电站操作人员的安全。弧光保护是基于电力系统开关柜发生弧光故障时而设计的一套母线保护系统&#…

[基础IO]文件描述符{C库函数\系统接口\初识fd}

文章目录 1.基础知识1.1对文件的认识1.2对系统调用接口的认识1.3如何理解LInux下一切皆文件? 2.C语言的库函数2.1FILE *fopen(const char *path, const char *mode);2.2对fopen()的mode的w/a的深层认识2.3fclose()2.4size_t fwrite(const void *ptr, size_t size, size_t nmem…

固态硬盘无法识别?三大方法帮你搞定

随着科技的迅猛发展&#xff0c;固态硬盘&#xff08;SSD&#xff09;已成为许多计算机用户首选的存储设备。然而&#xff0c;有时我们可能会遭遇固态硬盘无法识别的问题&#xff0c;这给用户带来了不便与困扰。本文将深入研究固态硬盘无法识别的原因&#xff0c;并为您提供三种…

STM32 寄存器配置笔记——USART DMA接收

一、简介 本文主要介绍STM32如何配合USART的IDLE中断实现USART DMA接收不定长的数据。其中使用的接收缓存还是延用前面博客写的乒乓缓存。使用DMA USART接收来替代中断方式或轮询方式的接收主要是为了提高代码的运行效率&#xff0c;中断方式的接收&#xff0c;每接收一个字节便…

RZ、NRZ、NRZI、曼彻斯特编码

1、RZ编码 RZ编码也成为归零码&#xff0c;归零码的特性就是在一个周期内&#xff0c;用二进制传输数据位&#xff0c;在数据位脉冲结束后&#xff0c;需要维持一段时间的低电平 2、NRZ编码 NRZ编码也成为不归零编码&#xff0c;即高电平表示1&#xff0c;低电平表示0。它与RZ码…

swing快速入门(六)

注释很详细&#xff0c;直接上代码 上一篇 本篇新增内容 Gridlayout&#xff08;网格布局&#xff09; Textfield组件的最大限定长度 Panel()的默认布局方式 Gridlayout的默认布局位置 import java.awt.*;public class swing_test_4 {public static void main(String[]ar…

Android 11.0 systemui锁屏页面时钟显示样式的定制功能实现

1.前言 在11.0的系统ROM定制化开发中,在进行systemui的相关开发中,当开机完成后在锁屏页面就会显示时间日期的功能,由于 开发产品的需求要求时间显示周几上午下午接下来就需要对锁屏显示时间日期的相关布局进行分析,然后实现相关功能 效果图如图: 2.systemui锁屏页面时钟显…

c语言->自定义类型联合体和枚举类型

系列文章目录 文章目录 前言 ✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青_C语言,函数,指针-CSDN博客 目的&#xff1a;学习联合体和枚举类型的…