私はこのクエリを実行しようとするたびに、x回以上繰り返された列を持つ行をカウントしようとしています:mysqlでAS "name"という名前の列としての条件
SELECT DISTINCT
idLogin, count(idLogin) AS "cou"
FROM
`products` AS t
GROUP BY
idLogin
HAVING
t.cou > 2
このエラーが
私はこのクエリを実行しようとするたびに、x回以上繰り返された列を持つ行をカウントしようとしています:mysqlでAS "name"という名前の列としての条件
SELECT DISTINCT
idLogin, count(idLogin) AS "cou"
FROM
`products` AS t
GROUP BY
idLogin
HAVING
t.cou > 2
このエラーが
使用この1
SELECT DISTINCT idLogin, count(idLogin) AS cou FROM `products`
GROUP BY idLogin HAVING cou > 2
が起こっている理由は、エイリアス列名から二重引用符を削除します。
MySQLは二重引用符ではなく、エスケープするテーブルとカラム名に単一のバッククォートを使用します。
MySQLは、 'SET SQL_MODE = ANSI'または' ANSI_QUOTES'の場合、区切り識別子の二重引用符をサポートしています。 –
相関名t
には列がありませんcou
。ただ、これを使用する:
HAVING cou > 2
PS:DISTINCT
は、クエリで冗長です。 GROUP BY
は、固有値ごとに1つの行が確実に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