MySQL: вернуть поля, в которых COUNT (*) больше - PullRequest
7 голосов
/ 18 октября 2010

У меня есть следующий SQL, но я хочу возвращать только те строки, где «хиты» больше 10.

SELECT clicks.affiliate, COUNT(*) AS hits, affiliates.title, affiliates.url
FROM clicks
INNER JOIN affiliates ON affiliates.id = clicks.affiliate
GROUP BY clicks.affiliate

Спасибо.

Ответы [ 3 ]

20 голосов
/ 18 октября 2010

Для фильтрации по агрегату необходимо использовать предложение having.В отличие от многих РСУБД, MySQL позволяет вам использовать псевдоним столбца в этом контексте (большинство других РСУБД также настаивают на добавлении affiliates.title, affiliates.url в предложение group by)

SELECT clicks.affiliate, COUNT(*) AS hits, affiliates.title, affiliates.url
FROM clicks
INNER JOIN affiliates ON affiliates.id = clicks.affiliate
GROUP BY clicks.affiliate
HAVING hits > 10
3 голосов
/ 18 октября 2010
SELECT clicks.affiliate, COUNT(*) AS hits, affiliates.title, affiliates.url
FROM clicks
INNER JOIN affiliates ON affiliates.id = clicks.affiliate
GROUP BY clicks.affiliate
HAVING COUNT(*) > 10
0 голосов
/ 18 октября 2010
 ...
HAVING hits > 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...