mysql - 在 SQL 查询中使用 Count 和 Max

标签 mysql sql count max

我有两个要查询的表,Enrollment 和 Course。在类(class)表中,每门类(class)只有一个条目,但在入学表中,每个注册任何类(class)的学生都有一个条目,因此一门类(class)可能有 30 个条目。我的任务是找到注册人数最多的类(class),并打印出该类(class)的名称以及该类(class)的注册人数。到目前为止,这是我的查询

select c.CourseCode ,(SELECT count( * ) FROM Enrollment WHERE CourseCode = c.CourseCode) as test from Course c ;

这给了我结果:

CS227 - 29

CS228 - 34

CS309 - 31

CS311 - 25 等等,这很好,但是现在,我如何只打印出注册人数最多的类(class)(在本例中为 CS228)。我试过使用 max(),但我什么也做不了。

这是表结构

创建表类(class)( 类(class)代码 char(50), 类(class)名称 char(50), PreReq 字符 (6));

创建表注册( CourseCode char(6) NOT NULL, SectionNo int NOT NULL, StudentID char(9) NOT NULL 引用学生, 等级 char(4) NOT NULL, 主键(CourseCode,StudentID), 外键(CourseCode、SectionNo)引用既定类(class));

最佳答案

按计数排序后取前1名。

即:

Select Top 1 A.CourseCode, Count(*) From Course A inner join Enrollment B on (A.CourseCode=B.CourseCode) 
Group By A.CourseCode
Order By Count(*) DESC

此外 - 使用我在此处展示的内部联接而不是子查询。我确实倾向于喜欢 SubQueries,这个可以工作,但它不适合这种查询!

关于mysql - 在 SQL 查询中使用 Count 和 Max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458524/

相关文章:

sql - Select 语句以查找某些字段上的重复项

filter - 基于嵌入文档计数的MongoDB查询

java - 线程运行时未实现计数器值

php - 使用多个选择器删除一条mysql记录

php - MySQL 意外关闭

python - 使用 Django 的 ORM Extra() 包含重复表

mysql - 嵌套 MySQL 查询失败,错误代码为 `Error Code 1060 Duplicate column name ' xxx'`

MySQL 如何在左连接中计算 where 子句仅用于计数?

mysql - 加载数据 INFILE 错误 1064

mysql - 搜索并返回与组中搜索匹配的行