首页 > 解决方案 > 如何在选择多列时按 1 列分组

问题描述

我试图从一个表中获取员工信息,同时对另一个表中的列进行分组,我似乎得到了重复。我需要按年份分组,同时展示当年销售额最高的员工。

我尝试了什么:

select concat(SM.FirstName,'-',SM.LastName) AS EmployeeOfTheYear,Year(S.SaleDate) AS SaleYear,Max(S.SalePrice) AS SalesPrice
   from SalesMan SM,Sale S
   where SM.SalesManID = S.SalesManID
   group by Year(S.SaleDate),concat(SM.FirstName,'-',SM.LastName)

结果:

结果

我觉得我应该在这里做一个子查询。我试过在网上找东西,但找不到任何东西可以帮助我只显示一年。

标签: sqlgroup-by

解决方案


听起来你需要一个 JOIN 子句。这将只返回两组的交集。https://www.w3schools.com/sql/sql_join_inner.asp


推荐阅读