【无标题】

1.表: Employee

+--------------+---------+
| 列名          | 类型    |
+--------------+---------+
| id              | int       |
| name        | varchar |
| salary       | int     |
| departmentId | int     |
+--------------+---------+
id是此表的主键列。
departmentId是Department表中ID的外键。
此表的每一行都表示员工的ID、姓名和工资。它还包含他们所在部门的ID。
 

表: Department

+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| id             | int     |
| name       | varchar |
+-------------+---------+
id是此表的主键列。
此表的每一行都表示一个部门的ID及其名称。

(1)编写SQL查询以查找每个部门中薪资最高的员工。按 任意顺序 返回结果表。
(2)公司的主管们感兴趣的是公司每个部门中谁赚的钱最多。一个部门的 高收入者 是指一个员工的工资在该部门的 不同 工资中 排名前三 。编写一个SQL查询,找出每个部门中 收入高的员工 。以 任意顺序 返回结果表。
(1)

    select d.name Department,e.name Employee,e.salary Salary
    from Employee e 
    left join Department d on e.departmentId=d.id 
    where (e.departmentId,e.salary) in 
    (select ee.departmentId,max(ee.salary) 
    from Employee ee group by ee.departmentId)

(2)

    SELECT d.name Department,e1.name Employee,e1.Salary Salary
    FROM Employee AS e1 left join Department d on e1.DepartmentId=d.id
    WHERE 3 > 
    (SELECT  count(DISTINCT e2.Salary) 
    FROM  Employee AS e2 
    WHERE  e1.Salary < e2.Salary  AND e1.DepartmentId = e2.DepartmentId) 

2.表:Logs

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| num         | varchar |
+-------------+---------+
id 是这个表的主键。

编写一个 SQL 查询,查找所有至少连续出现三次的数字。
返回的结果表中的数据可以按 任意顺序 排列。

    select distinct(num) "ConsecutiveNums"
    from (
    select 
    num,(row_number() over(order by id )-
    row_number() over(partition by num order by id)) rank_
    from Logs
    ) tmp
    group by rank_,num
    having count(rank_)>=3;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿咕咚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值