本文主要是介绍MySql如何查找各组得分最高的员工?having使用隐藏坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:编写一个 SQL 查询,找出每个部门工资最高的员工。
题目链接:leetcode
我使用了先group by,再having来查询,结果只返回了工资为80000的那一个人,另一个部门里的两个工资为90000的两个人没被返回。我的错误SQL语句为:
select Employee.Name as 'Employee', Department.Name as 'Department',Salary from
Employee left join Department on Employee.DepartmentId=Department.Id
group by DepartmentId
having Salary=Max(Salary);
正确解答链接:解析
网站文章里的列举的错误2,having子句中是不能出现非聚合函数中的属性名的,原因是group by分组之后得到的是组中的1条数据,所以having Salary只能获得这一条数据的Salary。
解决方法是不要在having子句中出现非聚合函数和非具体数据的其他字段。
这篇关于MySql如何查找各组得分最高的员工?having使用隐藏坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!