Mysql частота счета - с порогом - PullRequest
0 голосов
/ 06 июня 2018

Посты типа Частота подсчета Mysql были полезны при получении списка частот поля в таблице MySQL.

Что делать, если я хотел бы установить порог, чтобы только некоторыеЧастоты, которые соответствуют критериям, «выбраны» или показаны.например.

SELECT age, COUNT(*) AS freq FROM ages GROUP BY age WHERE COUNT(*) > 20

Приведенная выше команда получает ошибку, хотя.Какая правильная команда?

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Вы должны использовать HAVING, но вы должны выполнить фильтр в новом поле "freq":

SELECT age, COUNT(*) AS freq
FROM ages
GROUP BY age
HAVING freq > 20;
0 голосов
/ 06 июня 2018

Поместите предложение where перед вашей группой на:

SELECT 
    age, 
    COUNT(*) AS freq 
FROM ages 
WHERE COUNT(*) > 20
GROUP BY age 
0 голосов
/ 06 июня 2018

Вы, вероятно, хотите использовать здесь выражение HAVING:

SELECT age, COUNT(*) AS freq
FROM ages
GROUP BY age
HAVING COUNT(*) > 20;

HAVING играет ту же роль, что и WHERE, за исключением первых действий для групп или агрегатовзаписей, в то время как последний действует на отдельные записи.Поскольку вы хотите ограничить поведение групп записей, после выполнения GROUP BY вы хотите использовать HAVING.

...