MySQL извлекает поле, где поле существует> х раз в таблице - PullRequest
1 голос
/ 02 октября 2010

Я пытаюсь сделать следующее в MySQL:

SELECT DISTINCT field
FROM table
WHERE COUNT(field) > 10

, что не с: 1111 - Неправильное использование групповой функции (насколько я понимаю, вы не можете использовать групповые функции, такие как1004 * в предложении where?)

Как правильно выбрать (различить) все поля, присутствующие хотя бы в N строках?Это то, что мне придется делать внешне, скажем, PHP?

Спасибо!

1 Ответ

4 голосов
/ 02 октября 2010

use:

SELECT DISTINCT field
  FROM table
HAVING COUNT(field) > 10

Вы не можете использовать агрегатные функции вне подзапроса в предложении WHERE.Вот почему вам нужно использовать предложение HAVING.Также имейте в виду, что COUNT считает ненулевые значения ...

В идеале должно быть предложение GROUP BYтакже.Но MySQL довольно слаб в этом .

Для сравнения всех столбцов

... вам нужно добавить GROUP BY предложение, в котором перечислены все эти столбцы - здесь нет сокращения.Затем измените предложение HAVING на COUNT(*) > 10.

...