sql:仅显示最大计数 (php)

sql: show only the max count (php)

我一直在浏览各种示例,但似乎无法获得正确答案。我想在这里得到的是显示: staffID,名称来自 Table 员工 总号员工从 StaffWorksInTask 参与的任务数 (仅限参与任务最多的员工)

职员:staffID、姓名

StaffWorksInTask:员工 ID、任务 ID、项目 ID

我第一步做的是忽略过滤器部分:

SELECT COUNT(W.staffID), S.staffID, S.name 
FROM Staff S, StaffWorksInTask W 
WHERE S.staffID = W.staffID 
GROUP BY W.staffID

但现在我完全坚持可以让列表只显示涉及最多任务的员工的条件(这样,其他员工就不会显示)。 请帮忙!!非常感谢!!

正如@jarlh 所说,您已经从后到前进行了分组。

SELECT TOP 1 COUNT(W.staffID) as c, S.staffID, S.name 
FROM Staff S, StaffWorksInTask W 
WHERE S.staffID = W.staffID 
GROUP BY S.staffID, S.name
ORDER BY c DESC

准确的语法可能有所不同 - 您没有指定您使用的是哪个数据库平台。

您需要限制结果

SELECT COUNT(W.staffID) as total, S.staffID, S.name FROM Staff S, StaffWorksInTask WHERE S.staffID = W.staffID GROUP BY S.name,S.staffID ORDER BY total DESC LIMIT 1

据我了解,您只想查看一个最高结果吗?

你可以这样做:

SELECT COUNT(W.staffID) as counter, S.staffID, S.name 
FROM Staff S, StaffWorksInTask W 
WHERE S.staffID = W.staffID 
GROUP BY S.staffID 
ORDER BY counter DESC
LIMIT 0, 1

这将只显示一名工作人员 - 任务最多的人

ORDER BY 子句按任务数降序排列结果,

LIMIT 子句确保您只看到 1 个结果(从第 0 行开始)