Как использовать результаты COUNT(Field) в запросе? - MySQL

Формулировка задачи:

Есть таблица Books, которая, в том числе, содержит поля Book, Category и Price. Как написать такой запрос, который вернёт список категорий, в которых есть определённое количество книг с заданной ценой. Для подсчёта числа книг, понятно, нужно использовать GROUP BY, но вот как потом фильтровать по полученным значениям? Т.е. запрос вида:
SELECT Category, COUNT(Book) FROM Books WHERE Price BETWEEN 100 AND 150 GROUP BY Book
вернёт список категорий и количество книг в указанном диапазоне цен. Понятно, что можно использовать временную таблицу для хранения результатов этого запроса, и потом выбирать из неё. А можно ли это в одном запросе сделать? И стоит ли, вообще, это объединять в один запрос?

Код к задаче: «Как использовать результаты COUNT(Field) в запросе? - MySQL»

textual
SELECT Category, COUNT(Book) FROM Books WHERE Price BETWEEN 100 AND 150 GROUP BY Book HAVING COUNT(Book) = 5

7   голосов, оценка 4.286 из 5


СОХРАНИТЬ ССЫЛКУ