Как использовать "ГДЕ" для пользовательского поля (псевдонима)?
Как мне выполнить запрос следующим образом:
SELECT type, COUNT(name) as cnt FROM products WHERE cnt > 1 GROUP BY type
Этот запрос приводит к ошибке #1054 - Unknown column 'cnt' in 'where clause'
Это потому, что WHERE
применяется перед группировкой.
Как я могу обойти это?
Структура таблицы:
id name type price
123451 Park's Great Hits Music 19.99
123452 Silly Puddy Toy 3.99
123453 Playstation Toy 89.95
123454 Men's T-Shirt Clothing 32.50
123455 Blouse Clothing 34.97
123456 Electronica 2002 Music 3.99
123457 Country Tunes Music 21.55
123458 Watermelon Food 8.73
Структура таблицы заимствована из http://www.tizag.com/mysqlTutorial/mysqlcount.php для простоты.
4
1 answers
Вам необходимо использовать предложение HAVING
для фильтрации записей, полученных в результате агрегированного запроса:
SELECT type, COUNT(name) as cnt FROM products GROUP BY type HAVING cnt > 0;
15
Author: Omesh, 2012-09-10 08:05:16