Условие в качестве столбца, названного с использованием AS "name" в MySQL - PullRequest
0 голосов
/ 02 июля 2011

Я пытаюсь сосчитать строку, в которой столбцы были повторены (их значение) более чем x раз в mysql, каждый раз, когда я пытаюсь выполнить этот запрос, я получаю сообщение об ошибке:

SELECT DISTINCT
    idLogin, count(idLogin ) AS "cou" 
FROM 
   `products` AS t
GROUP BY 
    idLogin
HAVING 
    t.cou > 2

почему этоошибка происходит

Ответы [ 4 ]

1 голос
/ 03 июля 2011

Вы можете поместить это выражение count(idLogin ) непосредственно в clouse ....

это не даст никакой ошибки .. и будет также более нестабильным ....

или вы можете сделать одну вещь -

select idLogin,cou from (
SELECT DISTINCT   idLogin, count(idLogin ) AS cou  
FROM   products 
GROUP BY idLogin ) t
where t.cou >2 
1 голос
/ 02 июля 2011

Используйте это

SELECT DISTINCT   idLogin, count(idLogin ) AS cou  FROM   `products` 
GROUP BY idLogin HAVING cou > 2
0 голосов
/ 02 июля 2011

Имя корреляции t не имеет столбца cou. Просто используйте это:

HAVING cou > 2

PS: DISTINCT является избыточным в вашем запросе. GROUP BY гарантирует, что для каждого отдельного значения idLogin.

будет только одна строка.
0 голосов
/ 02 июля 2011

Удалите двойные кавычки из псевдонима имени столбца.

MySQL использует одинарные обратные кавычки для экранирования имен таблиц и столбцов, а не двойные кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...