Sql server SQL server显示最大值的名称

Sql server SQL server显示最大值的名称,sql-server,Sql Server,我试图在我的员工表中找到每个站点的前三名病假员工。我正在尝试写一个查询,首先查找每个站点的头号病假离开者 这是我的东西,但我似乎弄不好 这是我的 select Site.SiteName, [FullName] where MAX([SickLeaveTaken]) from Employee left join Site on(Employee.SiteID=Site.SiteID) GROUP BY Site.SiteName; GO 使用SQL中的排名函数,可以得到病假最多的前三名员工

我试图在我的员工表中找到每个站点的前三名病假员工。我正在尝试写一个查询,首先查找每个站点的头号病假离开者

这是我的东西,但我似乎弄不好 这是我的

select Site.SiteName,
[FullName] where MAX([SickLeaveTaken])
from Employee
left join Site
on(Employee.SiteID=Site.SiteID)
GROUP BY Site.SiteName;
GO

使用SQL中的排名函数,可以得到病假最多的前三名员工

select top 3 EmployeeID,SickLeaveTaken,s.SiteName,rn from 
(select e.EmployeeID,SickLeaveTaken,e.SiteID ,RANK() over(order by [SickLeaveTaken] 
desc ) as rn
from @Employee e )e
left join @Site s on e.SiteID=s.SiteID
order by rn desc

假设表Employee包含列
(尽管这不是正常情况),您需要对结果进行降序排序并获得前3名:

select TOP(3) WITH TIES
  s.SiteName, 
  e.FullName, 
  MAX(e.SickLeaveTaken) maxleave
from Site s inner join Employee e
on e.SiteID = s.SiteID
GROUP BY s.SiteName, e.FullName
ORDER BY MAX(e.SickLeaveTaken) DESC;

你们似乎在按站点聚合,我不知道你们为什么会这样做。请包括一些样本数据和预期的输出。抱歉,我在每个网站上做。我现在要添加一些数据。如果5名员工恰好因最多的病假而处于平局,会发生什么情况?在这种情况下,您的查询将返回多少条记录?