在云服务器上搭建网站,汕头建站模板源码,网站改版后的内容,广东建设厅网站前言
练习sql语句#xff0c;所有题目来自于力扣#xff08;https://leetcode.cn/problemset/database/#xff09;的免费数据库练习题。
今日题目#xff1a;
184.部门工资最高的员工 表#xff1a;Employee
列名类型idintnamevarcharsalaryvarchardepartmentIdint
…前言
练习sql语句所有题目来自于力扣https://leetcode.cn/problemset/database/的免费数据库练习题。
今日题目
184.部门工资最高的员工 表Employee
列名类型idintnamevarcharsalaryvarchardepartmentIdint
在 SQL 中id是此表的主键。 departmentId 是 Department 表中 id 的外键在 Pandas 中称为 join key。 此表的每一行都表示员工的 id、姓名和工资。它还包含他们所在部门的 id。
表Department
列名类型idintnameint
在 SQL 中id 是此表的主键列。 此表的每一行都表示一个部门的 id 及其名称。 查找出每个部门中薪资最高的员工。 我那不值一提的想法
首先梳理表内容题干一共给了两张表一张员工表一张部门表其中员工表记录了员工id姓名薪资以及部门id其中部门表记录了部门id部门姓名其次分析需求需要找到每个部门中薪资最高的员工其实找到每个部门的最高工资并不难难的是如果最高工资有两个需要显示两个人的工资但是max()函数只能显示一个值所以在这里我们首先需要通过max()groupby()函数找到每个部门所对应的最高工资然后再将这个结果作为临时表去连接题干中的Employee表条件是 临时表.id Employee.department_id and 临时表.max_salary Employee.salary这样就能得到最终结果
select a.name as Department,e.name as Employee,e.salary
from Employee e right join
(select d.id,d.name,max(e.salary) as max_salaryfrom Employee e left join Department d on e.departmentId d.id group by d.id
) as a
on e.salary a.max_salary and e.departmentId a.id结果 总结
能运行就行。