我正在尝试计算在mysql中重复(它们的值)超过x次的列的行,每次我尝试执行此查询时都会收到错误:
SELECT DISTINCT
idLogin, count(idLogin ) AS "cou"
FROM
`products` AS t
GROUP BY
idLogin
HAVING
t.cou > 2
为什么会发生这种错误
答案 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
的不同值只有一行。