MySQL数据库 - 复杂查询(一)

news2024/9/25 23:20:00

一个不知名大学生,江湖人称菜狗
original author: Jacky Li
Email : 3435673055@qq.com

Time of completion:2024.03.27
Last edited: 2024.03.27

目录

MySQL数据库 - 复杂查询(一)

第1关:交换工资

任务描述

相关知识

编程要求

测试说明

代码如下:

第2关:换座位

任务描述

相关知识

编程要求

测试说明

代码如下:

第3关:分数排名

任务描述

相关知识

编程要求

测试说明

代码如下:

第4关:体育馆的人流量

任务描述

相关知识

编程要求

测试说明

代码如下:

第5关:统计总成绩

任务描述

相关知识

编程要求

测试说明

代码如下:

作者有言


MySQL数据库 - 复杂查询(一)

第1关:交换工资

任务描述

本关任务:给定一张 tb_Salary 表,如下所示,有 m = 男性f = 女性的值。交换所有的 fm 值(例如,将所有 f 值更改为 m,反之亦然)。

idnamesexsalary
1Elonf7000
2Donnyf8000
3Careym6000
4Karinf9000
5Larisam5500
6Soram500

要求只使用一句更新update语句,且不允许含有任何select语句完成任务。

相关知识

编程要求

根据提示并仔细阅读右侧代码,在Begin - End区域内进行代码补充。

提示

可能需要使用到 CASE 函数或 IF 函数,使用方法如下实例:

  1. SELECT
  2. case ###如果
  3. when sex='1' then '男' ###sex='1',则返回值'男'
  4. when sex='2' then '女' ###sex='2',则返回值'女'
  5. else '其他' ###其他的返回'其他’
  6. end ###结束
  7. from sys_user ###整体理解: 在sys_user表中如果sex='1',则返回值'男'如果sex='2',则返回值'女' 否则返回'其他’
  1. select if(sex='1','男','女') as sex from sys_user; ###如果sex='1'则返回值'男' 否则返回值为'女'
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

预期输出:

  1. +----+--------+-----+--------+
  2. | id | name | sex | salary |
  3. +----+--------+-----+--------+
  4. | 1 | Elon | m | 7000 |
  5. | 2 | Donny | m | 8000 |
  6. | 3 | Carey | f | 6000 |
  7. | 4 | karin | m | 9000 |
  8. | 5 | Larisa | f | 5500 |
  9. | 6 | Sora | f | 500 |
  10. +----+--------+-----+--------+

代码如下:

#请在此添加实现代码
########## Begin ##########
-- update tb_Salary set sex = if(sex = 'f','m','f');
update tb_Salary set sex = case when sex= 'm' then'f' else'm' end;
########## End ##########

第2关:换座位

任务描述

本关任务:改变相邻俩学生的座位。

小美是一所中学的信息科技老师,她有一张 tb_Seat座位表,平时用来储存学生名字和与他们相对应的座位 id

tb_Seat表结构数据如下:

idname
1Elon
2Donny
3Carey
4Karin
5Larisa

现在小美想改变相邻俩学生的座位(若学生人数为奇数,则无需改变最后一位同学的座位),现在需要你编写SQL输出小美想要的的结果。

相关知识

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

预期输出:

  1. id name
  2. 1 Donny
  3. 2 Elon
  4. 3 Karin
  5. 4 Carey
  6. 5 Larisa

代码如下:

#请在此添加实现代码

########## Begin #########
-- select
--     case 
--     when id%2=0 then id-1 
--     else (case when id=(select max(id) from tb_Seat) then id else id+1 end
--         ) end
--     as id, name
-- from tb_Seat order by id;
SELECT 
CASE 
WHEN MOD(id,2)=1 AND id!=(SELECT MAX(id) FROM tb_Seat) THEN id+1
WHEN MOD(id,2)=0 THEN id-1 
ELSE id 
END 
AS id,name FROM tb_Seat ORDER BY id;

-- SELECT IF(id%2=0,id-1,IF(id=5,id,id+1)) AS id,name 
-- FROM tb_Seat  ORDER BY id;
########## End ##########

第3关:分数排名

任务描述

本关任务:编写SQL查询来实现二种排名方式的分数排名。

score表结构信息如下:

IdScore
13.52
23.65
34.23
43.85
54.23
63.65

如果两个分数相同,则两个分数排名(Rank)相同。

情况一:平分后的下一个名次是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。例:1、1、2、3、4、4。

情况二:排名是非连续的。例:1、1、1、4、4、6。

相关知识

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

代码如下:

#请在此添加实现代码

########## Begin ##########
select Score,(select count(distinct Score) from score as s2 where s2.Score>=s1.Score) as Rank
from score as s1 order by Score desc;
select Score,(select count(Score)+1 from score as s2 where s2.Score>s1.Score) as Rank
from score as s1 order by Score desc;

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

第4关:体育馆的人流量

任务描述

本关任务:某市建了一个新的体育馆,每日人流量信息被记录在gymnasium表中:序号 (id)、日期 (date)、 人流量 (visitors_flow)。

请编写一个查询语句,找出人流量处于高峰的记录 id、日期 date 和人流量 visitors_flow,其中高峰定义为前后连续三天人流量均不少于 100。

gymnasium表结构数据如下:

iddatevisitors_flow
12019-01-0158
22019-01-02110
32019-01-03123
42019-01-0467
52019-01-05168
62019-01-061352
72019-01-07382
82019-01-08326
92019-01-0999

提示:每天只有一行记录,日期随着 id 的增加而增加。

相关知识

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

预期输出:

  1. +----+------------+---------------+
  2. | id | date | visitors_flow |
  3. +----+------------+---------------+
  4. | 5 | 2019-01-05 | 168 |
  5. | 6 | 2019-01-06 | 1352 |
  6. | 7 | 2019-01-07 | 382 |
  7. | 8 | 2019-01-08 | 326 |
  8. +----+------------+---------------+

代码如下:

#请在此添加实现代码

########## Begin ##########
select distinct a.*
from gymnasium a,gymnasium b,gymnasium c
where a.visitors_flow >= 100 and b.visitors_flow >= 100 and c.visitors_flow >= 100 and
      (
       (a.id+1 = b.id and b.id+1 = c.id) or
       (a.id-1 = b.id and a.id+1 = c.id) or
       (a.id-1 = c.id and a.id+1 = b.id) or
       (a.id-2 = b.id and a.id-1 = c.id) or
       (a.id-1 = b.id and a.id-2 = c.id)
      )
order by a.id

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

第5关:统计总成绩

任务描述

本关任务:计算每个班的语文总成绩和数学总成绩,其中低于 60 分的成绩不记入总成绩。

tb_score结构数据:

namechinesemaths
A8998
B9989
C5566
D8866
E5566
F8899

tb_class表结构数据:

stunameclassname
AC1
BC2
CC3
DC2
EC1
FC3
相关知识

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

预期输出:

  1. +-----------+---------+-------+
  2. | classname | chinese | maths |
  3. +-----------+---------+-------+
  4. | C1 | 89 | 164 |
  5. | C2 | 187 | 155 |
  6. | C3 | 88 | 165 |
  7. +-----------+---------+-------+

代码如下:

#请在此添加实现代码
########## Begin ##########
select classname,sum(if(chinese>=60,chinese,0)) chinese,sum(if(maths>=60,maths,0)) maths from tb_score a,tb_class b where a.name=b.stuname group by b.classname;

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

作者有言

如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

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

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

相关文章

【论文阅读】Faster Neural Networks Straight from JPEG

Faster Neural Networks Straight from JPEG 论文链接:Faster Neural Networks Straight from JPEG (neurips.cc) 作者:Lionel Gueguen,Alex Sergeev,Ben Kadlec,Rosanne Liu,Jason Yosinski 机构&#…

什么是RISC-V?开源 ISA 如何重塑未来的处理器设计

RISC-V代表了处理器架构的范式转变,特点是其开源模型简化了设计理念并促进了全球community-driven的开发。RISC-V导致了处理器技术发展前进方式的重大转变,提供了一个不受传统复杂性阻碍的全新视角。 RISC-V起源于加州大学伯克利分校的学术起点&#xff…

降分违规?90%新手会遇到的抖音小店运营问题!解决方法快围观!

哈喽~我是电商月月 今天我们聊聊新手开抖音小店会遇到的问题以及解决方法 为了完整性我们从头到尾分析,根据情况不同可自行翻阅 一,入驻和运营时的操作问题 1.营业执照的办理,选择,填写 营业执照的办理可以去当地工商局办理&…

Redis、Mysql双写情况下,如何保证数据一致

Redis、Mysql双写情况下,如何保证数据一致 场景谈谈数据一致性三个经典的缓存模式Cache-Aside Pattern读流程写流程 Read-Through/Write-Through(读写穿透)Write behind (异步缓存写入) 操作缓存的时候,删除…

智慧公厕,为智慧城市建设注入了新的活力

随着智慧城市的快速发展,公共厕所不再是简单的功能设施,而是成为了提升城市形象、改善民生服务的重要一环。智慧公厕作为新形态的公共厕所,通过精准监测公厕内部的人体活动状态、人体存在状态、空气质量情况、环境变化情况、设施设备运行状态…

如何在CentOS使用Docker搭建MinIO容器并实现无公网ip远程访问本地服务

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼…

vue3 引入svg 图片的详细方法

我们都知道 svg 文件比图片小的多,可以节省很多空间,这对页面性能来说是个很大的提升。 下面介绍一下 vue3 项目中使用 svg 的详细方法: (1)安装依赖插件 npm install vite-plugin-svg-icons -D(2&#x…

基于GIS、python机器学习技术的地质灾害风险评价与信息化建库

入门篇,ArcGIS软件的快速入门与GIS数据源的获取与理解;方法篇,致灾因子提取方法、灾害危险性因子分析指标体系的建立方法和灾害危险性评价模型构建方法;拓展篇,GIS在灾害重建中的应用方法;高阶篇&#xff1…

数字化转型核心 数据治理神器Hadoop 生态介绍HDFS、Yarn以及HBase/Hive

大数据Hadoop 生态的三大部件的目录 往期热门专栏回顾前言1、HDFS2、Yarn3、Hive4、HBase4.1.特点4.2.存储 5、Spark及Spark Streaming关于作者 往期热门专栏回顾 专栏描述Java项目实战介绍Java组件安装、使用;手写框架等Aws服务器实战Aws L…

BioXcell InVivoPlus anti-mouse Ly6G及部分参考文献

BioXcell InVivoPlus anti-mouse Ly6G 1A8单克隆抗体与小鼠Ly6G反应。Ly6G分子量为21-25kDa,是GPI锚定的细胞表面蛋白Ly-6超家族的成员,在细胞信号传导和细胞粘附中发挥作用。Ly6G在发育过程中由骨髓谱系中的细胞(包括单核细胞、巨噬细胞、粒…

Edge浏览器控制台(F12)中网络不显示接口信息

🐓情况描述 点击页面接口,控制台中网络选项中无法显示其接口信息 🐓问题解决 1.查看接口是否开启筛选,如果开启更改为全部即可 2.如果非上述情况,则可能是浏览器配置的问题,将浏览器配置可能有所变动 将浏…

【CASS精品教程】CASS添加标准图幅(50×50cm+50×40cm)

大比例尺地形图图幅一般分为正方形和矩形分幅两种,本文讲解CASS中添加标准图幅(5050cm、5040cm)的方法。 文章目录 一、CASS参数配置二、添加标准图幅(5050cm)三、添加标准图幅(5040cm)打开基于CASS自带案例数据study.dat绘制好的地形图study.dwg,如下图所示,下面来演示两种…

需求生命周期管理

背景 回顾很多项目或者产品,我们发现现在的版本和当初的理解或者设想是天壤之别,这是什么原因,对于这种情况又应该如何处理呢? 业务分析的交付物是需求文档,业务分析整个过程随着对业务的逐步深入,观察视…

基于Java在线考试系统系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

推荐几个python的工具

Beautiful Soup Beautiful Soup用于清理和提取HTML和XLM中的数据。 它用于解析HTML文本,并允许数据科学家将文本数据转换为结构化数据,只需几行代码,就可以提取复杂的HTML数据。在某些情况下,您只需要一个表标签,并且…

后端前行Vue之路(一):初识Vue

1.Vue是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方…

C++资产设备管理系统

一、引言 1.1 项目设计背景及意义 1.1.1理论研究基础 (1)C在C的基础上增加了面向对象的机制。 (2)充分利用面向对象机制中的多态性实现函数的设计。 1.1.2 技术层面的支持 运用系统为C面向对象程序设计提供的各种设计方法和V…

国外创意二维码广告:芬兰知名狗粮品牌如何在用AI技术说狗话?

AI 的飞速发展,极大地促进了各行各业的技术更迭,随之出现的是许多创意应用。比如,这次的户外创意广告案例中,AI面部识别技术就被用到了宠物狗身上。 今年3月份,芬兰一家知名的狗粮品牌Hau-Hau Champion ,在…

基于java实现的高校二手交易平台

开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclip…

ZYNQ学习之Ubuntu环境下的Shell与APT下载工具

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Ubuntu Shell操作 简单的说Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫…