Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:uso non valido della funzione di gruppo

Devi usare HAVING , non WHERE .

La differenza è:il WHERE la clausola filtra le righe selezionate da MySQL. Allora MySQL raggruppa le righe e aggrega i numeri per il tuo COUNT funzione.

HAVING è come WHERE , succede solo dopo il COUNT il valore è stato calcolato, quindi funzionerà come previsto. Riscrivi la tua sottoquery come:

(                  -- 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)