力扣——数据库刷题 No.4

今日刷题:

  • 部门工资最高的员工
  • 连续出现的数字

1、部门工资最高的员工

在这里插入图片描述
解题思路:

  • 先求出每个部门中最高的工资(注意:一定不能求出最高工资员工的名称,因为一个部门的最高工资可能是多个人),得到结果临时表
  • 再根据部门和工资字段联合(必须为内连接,因为员工表和部门表的记录都有可能为空)查询临时表,判断当前员工工资是否是部门最高工资

SQL代码:

select d.Name as Department,e.Name as Employee,e.Salary as Salary
from Employee e join Department d
on e.DepartmentId = d.Id
where (e.DepartmentId, e.Salary) in(
    select e.DepartmentId,max(e.Salary) as Salary
    from Employee e
    group by e.DepartmentId
)

2、连续出现的数据

在这里插入图片描述
解题思路:

  • 此题因为本人SQL语法了解还不多,就只能先考虑记录的ID都是相邻的情况
  • 我们用三表连接的方式,直接就可以得出结果

SQL代码:

select distinct L1.Num as ConsecutiveNums
from Logs as L1,Logs as L2,Logs as L3
where L1.Id = L2.Id - 1
and L2.Id = L3.Id -1
and L1.Num = L2.Num
and L2.Num = L3.Num
and L1.Num = L3.Num
发布了14 篇原创文章 · 获赞 1 · 访问量 584

猜你喜欢

转载自blog.csdn.net/qq_35149975/article/details/105369303