SQL найти максимальное количество - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь получить код устройства из этого

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')
    );

Но я не могу его получить. Я ищу максимальное значение, соответствующее коду устройства.

1 Ответ

0 голосов
/ 25 мая 2020

Если вам нужен максимальный код на единицу, используйте агрегацию:

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
...