码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode - Department Highest Salary

时间:2015-04-20 23:56:01      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

      题目大概的意思是选出每个Department里工资最高的人的信息并组成相应的表信息

     

      有几个值得注意的地方:1)使用group by语句时,前面的select语句后面的内容只能有两种情况一种是group by后面的属性,另一种是聚集函数

                                     2)在选取最大Salary时必须使用e1.Salary=e2.Salary and e1.DepartmentId=e2.DepartmentId两个条件,要不然会有重复。

       基于这些考虑可以使用派生表查询来找出最大Salary,然后与Department表做自然连接。(最后的升序还是降序无所谓)

     

select dep.Name as Department, pans.Name as Employee, 
pans.Salary as Salary
from Department dep, (
select e1.* from
Employee e1, (select DepartmentId, max(Salary) as Salary
from Employee group by DepartmentId) e2
where e1.Salary=e2.Salary and e1.DepartmentId=e2.DepartmentId
) pans
where dep.Id=pans.DepartmentId
order by pans.Salary desc;

 

 

 

      

LeetCode - Department Highest Salary

标签:

原文地址:http://www.cnblogs.com/wxisme/p/4442855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!