我想在mysql中每次重複(其值)超過x次的列的行數,每當我嘗試執行此查詢時出現錯誤:作爲在mysql中使用AS「名稱」命名的列的條件
SELECT DISTINCT
idLogin, count(idLogin) AS "cou"
FROM
`products` AS t
GROUP BY
idLogin
HAVING
t.cou > 2
爲什麼這個錯誤是發生
我想在mysql中每次重複(其值)超過x次的列的行數,每當我嘗試執行此查詢時出現錯誤:作爲在mysql中使用AS「名稱」命名的列的條件
SELECT DISTINCT
idLogin, count(idLogin) AS "cou"
FROM
`products` AS t
GROUP BY
idLogin
HAVING
t.cou > 2
爲什麼這個錯誤是發生
使用這一個
SELECT DISTINCT idLogin, count(idLogin) AS cou FROM `products`
GROUP BY idLogin HAVING cou > 2
從別名的列名稱中刪除雙引號。
MySQL使用單引號來轉義表名和列名,而不是雙引號。
如果您SET SQL_MODE = ANSI或ANSI_QUOTES,MySQL支持分隔標識符的雙引號。 –
相關名稱t
沒有列cou
。只需使用這個:
HAVING cou > 2
PS:DISTINCT
在您的查詢中是多餘的。 GROUP BY
確保每個不同的值只有一行idLogin
。
你可以把表達count(idLogin)
直接在其克勞斯....
它不會給任何錯誤..而且將更加understable以及... 。
否則,你可以做一兩件事 -
select idLogin,cou from (
SELECT DISTINCT idLogin, count(idLogin) AS cou
FROM products
GROUP BY idLogin) t
where t.cou >2
有什麼錯誤? – Rahul