我正在尝试从具有以下结构的表中选择每个部门中注册人数最多的课程:

课程:cid,dept,name

报名人数:cid,sid

想法是计算每个班级的所有入学人数,并找到每个部门的最高人数。不幸的是,我在最大数量组合上遇到了麻烦。

我的查询看起来像这样:

 SELECT c.name, MAX(COUNT(*) FROM Enrollment E WHERE E.cid = C.cid)
 FROM Courses C
 GROUP BY C.dept


但是我不知道如何使MAX-COUNT语法正常工作。我尝试了许多来自Google和StackOverflow的示例,但没有一个对我有用。 MySQL说语法是错误的。

最佳答案

我喜欢针对此类问题的嵌套查询。首先选择按课程分组的入学人数。然后找到每个部门分组的最大注册人数:

SELECT MAX(cnt) cnt, dept FROM
(
    SELECT COUNT(*) cnt, dept, C.cid
    FROM Courses C
        INNER JOIN Enrollment E on C.cid = E.cid
    GROUP BY cid, dept
) a
GROUP BY dept

关于mysql - MySQL计数最大行数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9855810/

10-12 19:48