Страницы

Поиск по вопросам

воскресенье, 21 октября 2018 г.

MySQL: GROUP BY устовия для COUNT(*)

Как задать максимальный и минимальный размеры группы, чтобы получить записи, где count < 5 и count > 2?
На данный момент использую такой запрос:
SELECT id, info, COUNT(*) as count FROM notification GROUP BY info ORDER BY count DESC;
Пример:
+----+-------+ | id | info | +----+-------+ | 1 | Admin | | 2 | User | | 3 | User | | 4 | User | | 5 | User | | 6 | User | | 7 | Admin | | 8 | Admin | | 9 | Test | | 10 | Test | +----+-------+
Желаемый вывод:
+----+-------+--------+ | id | info | count | +----+-------+--------+ | 1 | Admin | 3 | +----+-------+--------+


Ответ

Используйте параметр HAVING
SELECT id, info, COUNT(*) as count FROM notification GROUP BY info HAVING count(*) > 2 and count(*) < 5 ORDER BY count DESC;
Пример на sqlfiddle

Комментариев нет:

Отправить комментарий