条件作为在mysql中使用AS“name”命名的列

时间:2011-07-02 18:16:32

标签: mysql sql

我正在尝试计算在mysql中重复(它们的值)超过x次的列的行,每次我尝试执行此查询时都会收到错误:

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

为什么会发生这种错误

4 个答案:

答案 0 :(得分:1)

使用此

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

答案 1 :(得分:1)

你可以将表达式count(idLogin )直接放在having子句....

它不会给出任何错误..并且会更加明白......

或者你可以做一件事 -

select idLogin,cou from (
SELECT DISTINCT   idLogin, count(idLogin ) AS cou  
FROM   products 
GROUP BY idLogin ) t
where t.cou >2 

答案 2 :(得分:0)

从别名列名中删除双引号。

MySQL使用单引号来转义表名和列名,而不是双引号。

答案 3 :(得分:0)

相关名称t没有列cou。只需使用:

HAVING cou > 2

PS:DISTINCT在您的查询中是多余的。 GROUP BY确保每个idLogin的不同值只有一行。