Вам не нужно использовать max
здесь - вы можете просто ограничить количество возвращаемых строк и использовать order by
.
В зависимости от rdbms вы работаете с синтаксисом может очень, но идея все та же:
Для SQL Server, MS Access и, возможно, некоторых других баз данных используйте TOP
:
SELECT TOP 1 SERVICE, COUNT(*)
FROM SUBSCRIBERS
INNER JOIN SERVICE_SUBSCRIBERS
ON SERVICE_SUBSCRIBERS.LINE=SUBSCRIBERS.PORTID
GROUP BY SERVICE
ORDER BY COUNT(*);
Для Oracle используйте offset...fetch next
(также работает с сервером sql, начиная с версии 2012)
SELECT SERVICE, COUNT(*)
FROM SUBSCRIBERS
INNER JOIN SERVICE_SUBSCRIBERS
ON SERVICE_SUBSCRIBERS.LINE=SUBSCRIBERS.PORTID
GROUP BY SERVICE
ORDER BY COUNT(*)
OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY;
Для MySql используйте Limit
:
SELECT SERVICE, COUNT(*)
FROM SUBSCRIBERS
INNER JOIN SERVICE_SUBSCRIBERS
ON SERVICE_SUBSCRIBERS.LINE=SUBSCRIBERS.PORTID
GROUP BY SERVICE
ORDER BY COUNT(*)
LIMIT(1)