SQL查找最大计数

问题描述 投票:-1回答:1

我正在尝试从中获取单位代码

SELECT
    max(maxcount) 
FROM(
        SELECT
            COUNT(studid) maxcount,
            semester,
            e.unitcode,
            u.unitname,
            to_char(ofyear, 'yyyy')
        FROM
            uni.enrolment e Join uni.unit u 
        ON 
            e.unitcode = u.unitcode
        WHERE
            to_char(ofyear, 'yyyy') = '2013'
        GROUP BY
            semester,
            e.unitcode,
            u.unitname,
            to_char(ofyear, 'yyyy')
    );

但是我无法检索它。我正在寻找与单位代码相对应的最大值。

mysql sql join group-by max
1个回答
0
投票

如果需要最大单位代码,则使用聚合:

SELECT unitcode, MAX(maxcount) 
FROM (SELECT COUNT(studid) as maxcount, semester, e.unitcode, u.unitname
      FROM uni.enrolment e JOIN
           uni.unit u 
           ON  e.unitcode = u.unitcode
      WHERE ofyear >= DATE '2013-01-01' AND ofyear < DATE '2014-01-01'
      GROUP BY semester, e.unitcode, u.unitname
     ) eu
GROUP BY unitcode;

根据您的评论,您想要:

SELECT COUNT(studid) as maxcount, semester, e.unitcode, u.unitname
FROM uni.enrolment e JOIN
     uni.unit u 
     ON e.unitcode = u.unitcode
WHERE ofyear >= DATE '2013-01-01' AND ofyear < DATE '2014-01-01'
GROUP BY semester, e.unitcode, u.unitname
ORDER BY maxcount DESC
LIMIT 1
© www.soinside.com 2019 - 2024. All rights reserved.