mysql - 根据之前的 COUNT() 显示多个组的最大值

标签 mysql sql count group-by max

这是我当前的查询:

SELECT Takes_T.sec_id AS 'Section ID',
Takes_T.semester AS 'Semester',
Takes_T.year AS 'Year',
COUNT(Takes_T.takes_id) AS 'Enrollment'


From Takes_T

Group By Takes_T.year, Takes_T.semester, Takes_T.sec_id
ORDER BY Takes_T.year, Takes_T.semester DESC, Takes_T.sec_id,
Takes_T.course_id

;

这会产生以下结果:
(对于糟糕的格式,我深表歉意。我不知道如何将其放入表格中)

Section ID | Semester | Year | Enrollment
     1     | Spring   | 2014 | 12922
     2     | Spring   | 2014 |  1434
     3     | Spring   | 2014 |   322
     1     | Fall     | 2014 | 12590
     2     | Fall     | 2014 |  2732


我需要做的是显示每个部分的最大注册人数(一个部分是部分 ID、学期和年份的组合)。所以我需要的是:

Section ID  Semester   Year    Enrollment
    1       Spring     2014      12922
    1        Fall      2014      12590

如何修改查询以仅显示每个部分的最大值?

最佳答案

我不知道您正在使用哪种 RDBMS,但以下内容应该适用于 MS SQL Server:

SELECT
    sec_id AS 'Section ID',
    semester AS 'Semester',
    year AS 'Year',
    COUNT(takes_id) AS 'Enrollment'
FROM Takes_T t
WHERE sec_id = (
    SELECT TOP 1 sec_id
    FROM Takes_T
    WHERE year = t.year
    AND semester = t.semester
    GROUP BY year, semester
    ORDER BY count(*) DESC
)
GROUP BY year, semester, sec_id
ORDER BY year, semester DESC, sec_id

编辑:MySQL 也是如此:

SELECT
    sec_id AS 'Section ID',
    semester AS 'Semester',
    year AS 'Year',
    COUNT(takes_id) AS 'Enrollment'
FROM Takes_T t
WHERE sec_id = (
    SELECT sec_id
    FROM Takes_T
    WHERE year = t.year
    AND semester = t.semester
    GROUP BY year, semester
    ORDER BY count(*) DESC
    LIMIT 1
)
GROUP BY year, semester, sec_id
ORDER BY year, semester DESC, sec_id

关于mysql - 根据之前的 COUNT() 显示多个组的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28652411/

相关文章:

php - 我的数据库无法保存我的网站中通过php发送到数据库的电子邮件

MYSQL: Unix_Timestamp 如何扣除2周

mysql - MySQL : Errorno 150 是什么原因

MySQL 计算具有相同值的行

mysql2sqlite.sh 自动增量

php - 使用 PDO、准备好的语句和用 bindParam 替换标记来更新 MySQL;收到 'variables don' t 匹配 token 错误

sql - Spark sql 查询与数据帧函数

sql - PostgreSQL - 选择一列和两列中唯一值的计数

java - 获取java中句子中最常用的两个单词

php - MySQL自动递增和选择计数