sql >> Base de Datos >  >> RDS >> Mysql

MySQL:uso no válido de la función de grupo

Necesitas usar HAVING , no WHERE .

La diferencia es:el WHERE La cláusula filtra qué filas selecciona MySQL. Entonces MySQL agrupa las filas y agrega los números para su COUNT función.

HAVING es como WHERE , solo sucede después el COUNT se ha calculado el valor, por lo que funcionará como espera. Reescriba su subconsulta como:

(                  -- where that pid is in the set:
SELECT c2.pid                  -- of pids
FROM Catalog AS c2             -- from catalog
WHERE c2.pid = c1.pid
HAVING COUNT(c2.sid) >= 2)