MySQL统计最大行数

标签 mysql sql database

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

类(class):cid、部门、名称

注册:cid、sid

这个想法是计算每个类(class)的所有注册人数,并找到每个部门的最大值。不幸的是,我在最大计数组合方面遇到了麻烦。

我的查询看起来像这样:

 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 说语法错误。

最佳答案

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

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统计最大行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855810/

相关文章:

mysql - SQL:如何在不覆盖结果的情况下对表的同一列进行多个连接?

mysql - 从内容已定义的数据库中选择全部

mysql - 从cmd上传大文件到Mariadb

php - 在 PHP 中对三个数据库运行四个查询

Python,计算高效的数据存储方法

c# - sql中如何计算余额?

mysql - 在 MySQL 中是否有 SQL Server 的 @@error 的等价物

php - 将Mysql文本转换为日期

mysql - Mysql Text DataType 是否保留任何内存空间

php - 我需要使用单个查询将值插入到两个不同的表中