Как задать максимальный и минимальный размеры группы, чтобы получить записи, где 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.
Если таблица большая, то правильнее будет обернуть в другой запрос и написать условие в where. Работать будет быстрее.
SELECT * FROM (
SELECT id, info, COUNT(*) as count
FROM notification
GROUP BY info
) a
WHERE a.count > 2 AND a.count < 5
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
При выполнении вставки данных в таблицу я получаю ошибку:
Warning 1: mysql_query() expects parameter 1 to be string
Проблема в написании правильно строки с prepared statementom