【SQL50】day 2

ops/2024/11/27 3:53:02/

目录

1.每位经理的下属员工数量

 2.员工的直属部门

 3.判断三角形

 4.上级经理已离职的公司员工

 5.换座位

6.电影评分

7.修复表中的名字

 8.患某种疾病的患者

9.删除重复的电子邮箱 

1.每位经理的下属员工数量

# Write your MySQL query statement below
#e1是经理,e2是员工
select e1.employee_id,e1.name,count(e2.employee_id) as reports_count,round(avg(e2.age)) as average_age
from Employees e1
join Employees e2
on e1.employee_id=e2.reports_to
group by e1.employee_id,e1.name
order by e1.employee_id;

 2.员工的直属部门

# Write your MySQL query statement below
select employee_id,if(count(department_id)=1,department_id,max(case primary_flag when 'Y' then department_id end)) as department_id
from Employee
group by employee_id

 3.判断三角形

# Write your MySQL query statement below
select x,y,z,casewhen x+y>z and x+z>y and y+z>x then 'Yes'else 'No'end as triangle
from Triangle;

 4.上级经理已离职的公司员工

# Write your MySQL query statement below
#子查询就是查询套查询
select employee_id
from Employees 
where salary<30000
and manager_id not in (select employee_id from Employees)
order by employee_id

 5.换座位

# Write your MySQL query statement below
select s1.id as id,#逻辑:如果没有下一位,且当前是奇数,不改动;奇数取下一位的值,偶数取上一位的值if(s2.id is null && s1.id%2=1,s1.student,if(s1.id%2=1,s2.student,s3.student)) as student
from Seat s1
left join Seat s2 on s2.id=s1.id+1
left join Seat s3 on s3.id=s1.id-1
order by id

6.电影评分

 

# Write your MySQL query statement below
#查找用户
(select u.name as results
from Users u
left join MovieRating mr 
on u.user_id=mr.user_id
group by u.user_id
order by count(*) desc,name asc
limit 1
)
#查找电影
union all
(
select title as results
from Movies m
left join MovieRating mr
on m.movie_id=mr.movie_id and year(mr.created_at)=2020 and month(mr.created_at)=2
group by mr.movie_id
order by avg(mr.rating) desc,title asc
limit 1
)

7.修复表中的名字

# Write your MySQL query statement below
#使用substring分割字符,使用upper,lower大小写,使用concat连接
select user_id,concat(upper(substring(name,1,1)),lower(substring(name,2))) name
from Users
order by user_id

 8.患某种疾病的患者

# Write your MySQL query statement below
select *
from Patients
where conditions regexp '^DIAB1|\\sDIAB1'

 

9.删除重复的电子邮箱 

 

# Write your MySQL query statement below
#delete删除
delete p1
from Person p1,Person p2
where p1.email=p2.email and p1.id>p2.id

http://www.ppmy.cn/ops/136982.html

相关文章

探索 Docker 网络:编织容器间的通信纽带

在容器化技术蓬勃发展的今天&#xff0c;Docker 凭借其卓越的特性重塑了软件的开发、部署与运行模式。而 Docker 网络作为整个生态系统中不可或缺的关键部分&#xff0c;犹如一张无形却强大的蜘蛛网&#xff0c;巧妙地编织起容器间的通信纽带&#xff0c;确保各个容器能够在复杂…

瑞派宠物医生 | 热爱与实践交织,专注宠物口腔健康

热爱与实践交织的兽医梦 瑞派上海乔登宠物医院院长陈德举自小便与赛鸽结下了不解之缘&#xff0c;家族中饲养赛鸽的传统不仅让他对鸟类产生了浓厚的兴趣&#xff0c;更在心中埋下了成为一名兽医的种子。在面临高考这一人生重要抉择时&#xff0c;他毫不犹豫地选择了兽医专业&am…

开源图床的技巧与实践

随着互联网的普及&#xff0c;图片的使用变得越来越广泛。无论是个人博客、社交媒体还是企业网站&#xff0c;都离不开图片的呈现。而图床作为图片存储和管理的工具&#xff0c;可以帮助开发者和内容创作者高效地管理图片资源。本文将探讨如何利用开源图床&#xff0c;并提供相…

日志抽取工具——flume的安装与使用教程

2、安装 解压&#xff0c;重命名&#xff0c;修改配置文件&#xff1a; tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/installs/ mv apache-flume-1.9.0-bin/ flume在企业中安装软件起始有两个地方比较常见&#xff1a; /usr/local/ 也可以安装在 /opt/installs export …

Java将PDF保存为图片

将 PDF 文件转换为图片是常见的需求之一&#xff0c;特别是在需要将 PDF 内容以图像形式展示或处理时。其中最常用的是 Apache PDFBox。 使用 Apache PDFBox Apache PDFBox 是一个开源的 Java 库&#xff0c;可以用来处理 PDF 文档。它提供了将 PDF 页面转换为图像的功能。 …

前后端分离,后端拦截器无法获得前端请求的token

首先需要了解两个知识点&#xff1a; 跨域是指在浏览器中&#xff0c;一个网页试图请求另一个域&#xff08;协议、域名或端口不同&#xff09;的资源时&#xff0c;所涉及的安全机制。在Web开发中&#xff0c;一般来说&#xff0c;由于安全性原因&#xff0c;浏览器会阻止一个…

Fakelocation Server服务器/专业版 ubuntu

前言:需要Ubuntu系统 Fakelocation开源文件系统需求 Ubuntu | Fakelocation | 任务一 任务一 更新Ubuntu&#xff08;安装下载不再赘述&#xff09; sudo -i # 提权 sudo apt update # 更新软件包列表 sudo apt upgrade # 升级已安装的软…

裸金属服务器能够帮助企业解决哪些问题?

随着网络科技的快速发展&#xff0c;企业业务也在不断的进行扩张和复杂化&#xff0c;传统的服务已经无法满足企业对于高性能和高稳定性的需求&#xff0c;而裸金属服务器则能够帮助企业来解决这一问题&#xff0c;下面我们就来具体看一下吧&#xff01; 裸金属服务器能够允许应…