如何使用groupby子句显示员工姓名列



你好,我有两张表员工部门。在employee中,我有empid、firstName、salary、Department_ID,在departy中,我还有deptid和deptname。我想显示每个部门中薪水最高的员工的名字。我完成了以下代码

select  MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON e.Department_ID = D.Department_ID
GROUP BY D.Name

它是从唯一的部门表中给出的(我这里没有包括E.FirstName)。当我像下面那样写查询时

select E.FirstName MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON e.Department_ID = D.Department_ID
GROUP BY D.Name

给出的错误

E.FirstName不包含在聚合函数或GROUP BY中条款

如何修改此项以同时显示员工姓名?

当我把E.FirstName也添加到groupby子句中时,我得到了下面的输出。

名字薪资部门名称

BAKER 1400.00操作

Allen 5400.00 Research

Smith 1800.00研究

Dennis 4500.00销售

Mihir 7500.00销售

WARK 8000.00销售

我只想显示Max的受薪员工及其部门和工资。

将E.FirstName添加到GroupBy。Select语句中的列必须在GroupBy或其他聚合中进行核算。答案实际上就在您收到的错误信息中。

select E.FirstName MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON E.Department_ID = D.Department_ID
GROUP BY D.Name,E.FirstName

按照逻辑。这应该行得通。如果仍然出现错误。请公布错误。否则发布输出。

最新更新