部门工资最高的员工
Employee表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。
+----+-------+--------+--------------+ | Id | Name | Salary | DepartmentId | +----+-------+--------+--------------+ | 1 | Joe | 70000 | 1 | | 2 | Henry | 80000 | 2 | | 3 | Sam | 60000 | 2 | | 4 | Max | 90000 | 1 | +----+-------+--------+--------------+
Department表包含公司所有部门的信息。
+----+----------+ | Id | Name | +----+----------+ | 1 | IT | | 2 | Sales | +----+----------+
编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据上述给定的表格,Max 在 IT 部门有最高工资,Henry 在 Sales 部门有最高工资。
+------------+----------+--------+ | Department | Employee | Salary | +------------+----------+--------+ | IT | Max | 90000 | | Sales | Henry | 80000 | +------------+----------+--------+
解: Select d.name as Department,e.Name as Employee, e.Salary
from Employee as e,Department as d
where e.DepartmentId = d.Id and
e.Salary = (select max(Salary) from Employee as e2 where d.Id = e2.DepartmentId)
记几个问题:
1.表别名的用法,只要打上了表别名,就不再是这个表了。如果前后有两个嵌套形式的select语句,因为是select肯定都要跟from某个表,前面一旦打上了别名,后面跟前面用的就真的不是一个表了。
所以只要用了别名,都要看清作用范围,没有引入第二个select就一直有效,引入了另说。
2.select的嵌套用法:
sql中的两个简单嵌套:
(1)select *from table1 where name1>(select name2 from table2);
(2)select *,(select * from table2)as column_name from table1;
(3)select *form (select name1 from table1 where id>3) as t1;
首先是前两个,最大的区别就在于要提取的那一部分,表里有没有现成的,有现成的就先抽出来,然后在后面用where去控制这个范围,如果没有现成的,那就在一开始的时候select (select)as A from table,在一开始的时候写上有这么个东西。
第三个就是在筛选过一遍的范围里面,再次进行筛选,记得中间那个select用括号套好,后面写上as t
阅读更多
- 面试题:查询部门最高工资的员工信息
- 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名
- 用一个SQL语句选出每个部门工资最高的员工
- [数据库]关于三个比较典型的数据库试题(1.找到员工表中工资最高的前三名;2.找到员工表中薪水大于本部门平均薪水的员工;3.统计每年入职的员工个数)
- 如何用分析函数找出EMP表中每个部门工资最高的员工
- 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名
- 数据库查询-部门工资最高的员工
- 如何用分析函数找出EMP表中每个部门工资最高的员工
- 一句sql 在所有部门中选择平均工资最高的部门所有员工
- 面试题:查询部门最高工资的员工信息
- 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名
- 面试题:查询部门工资排前三的员工信息
- 查询50号部门员工的平均工资,如果平均工资低于5000,则每个员工工资增加1000
- 【SQL】求得工资在部门平均工资之上得员工
- 临时记录ORACLE--查询每个部门工资前2名的员工
- oracle--查询本部门薪水大于平均工资的员工
- 找出那些工资高于他们所在部门的平均工资的员工
- 使用光标查询10部门的员工姓名和工资,并打印__使用光标查询员工姓名和工资,并打印
- 2016中国员工工资涨幅全球最高,菜鸟在线想知道你怎么看?
- SQL(收藏)查询每个部门工资前三名的员工信息