首页 > 其他 > 详细

LeetCode - Department Highest Salary

时间:2015-04-20 23:55:56      阅读:405      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!