SQL Server显示最大值的名称

时间:2019-05-01 12:50:40

标签: sql-server

我试图在我的员工表中找到每个站点的前3名病假。我正在尝试编写查询以首先找到每个站点中患病人数最多的人。

这里是我所拥有的,但我似乎无法正确解决 这就是我所拥有的

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

2 个答案:

答案 0 :(得分:0)

通过使用SQL中的RANK函数,您可以获得前三名员工的最高病假

Host sshService
    HostName www.addressOfServer.com
    User sshUser
    ControlPersist 4h
    ControlPath /tmp/sshService.ctl
    IdentityFile /home/user/sshUser

答案 1 :(得分:0)

假设表Employee包含列SickLeaveTaken(尽管这是不正常的),则需要对结果进行降序排序并得出TOP 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;