当前位置: 首页 > news >正文

【SQL50】day 2

目录

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.lryc.cn/news/489394.html

相关文章:

  • 【内存管理】理解 `WeakReference` 以更好地管理 Android 应用中的内存
  • 解决IDEA中Maven管理界面不是层级结构的问题
  • Linux运维篇-iscsi存储搭建
  • 深度学习基础练习:代码复现transformer重难点
  • 141. Sprite标签(Canvas作为贴图)
  • 【IDEA】解决总是自动导入全部类(.*)问题
  • python中的OS模块的基本使用
  • 【Qt】QComboBox设置默认显示为空
  • LeetCode - #139 单词拆分
  • 服务器作业4
  • IOC控制反转---相关的介绍和6大注解解读(类注解+方法注解)
  • SpringBoot(8)-任务
  • 【机器学习】如何配置anaconda环境(无脑版)
  • java 可以跨平台的原因是什么?
  • Solana应用开发常见技术栈
  • npm | Yarn | pnpm Node.js包管理器比较与安装
  • Linux下编译MFEM
  • 【团购核销】抖音生活服务商家应用快速接入②——商家授权
  • django宠物服务管理系统
  • vue2中使用three.js步骤
  • 部落商城App开发笔记 2024.11.21 实现进入app就是短视频
  • 解决.DS_Store 在项目一致无法排除,.gitignore里也不生效
  • MySQL-关键字执行顺序
  • 极客时间《Redis核心技术与实战》开篇词 知识点总结
  • TCP并发服务器
  • Debug-031-近期功能实现小结
  • Consumer Group
  • .NET架构师学习大纲
  • 【代码随想录】贪心
  • Harmony鸿蒙类似与Android中broadcast广播的api使用及释义