Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Ungültige Verwendung der Gruppenfunktion

Sie müssen HAVING verwenden , nicht WHERE .

Der Unterschied ist:das WHERE -Klausel filtert, welche Zeilen MySQL auswählt. Dann MySQL gruppiert die Zeilen zusammen und aggregiert die Zahlen für Ihren COUNT Funktion.

HAVING ist wie WHERE , nur passiert es nach der COUNT Der Wert wurde berechnet, sodass er wie erwartet funktioniert. Schreiben Sie Ihre Unterabfrage wie folgt um:

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