Как использовать "ГДЕ" для пользовательского поля (псевдонима)?


Как мне выполнить запрос следующим образом:

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 для простоты.

Author: hims056, 2012-07-19

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