MySQL-Fehler: „Ungültige Verwendung der Gruppenfunktion“ Ursachen und Lösungen
In der angegebenen MySQL-Abfrage ist der Fehler „Ungültige Verwendung der Gruppenfunktion“ auf die Verwendung der COUNT-Funktion in der WHERE-Klausel zurückzuführen. Die WHERE-Klausel filtert Zeilen vor der Gruppierung, was zu einem Fehler führt.
Verwenden Sie die HAVING-Klausel, um das Problem zu lösen
Um dieses Problem zu beheben, ersetzen Sie die WHERE-Klausel durch eine HAVING-Klausel. Die HAVING-Klausel filtert Gruppen nach der Gruppierung. In diesem Beispiel sollte die HAVING-Klausel die Anzahl der Lieferanten-ID (sid) überprüfen, um sicherzustellen, dass sie größer oder gleich 2 ist.
Das Folgende ist die korrigierte Unterabfrage:
<code class="language-sql">( SELECT c2.pid FROM Catalog AS c2 WHERE c2.pid = c1.pid HAVING COUNT(c2.sid) >= 2 )</code>
Abfrage mit HAVING-Klausel abschließen
Mit der aktualisierten Unterabfrage wird die vollständige Abfrage zu:
<code class="language-sql">SELECT c1.pid -- 选择 pid FROM Catalog AS c1 -- 来自 Catalog 表 WHERE c1.pid IN (SELECT c2.pid -- 其中 pid 在以下集合中: FROM Catalog AS c2 -- pids WHERE c2.pid = c1.pid HAVING COUNT(c2.sid) >= 2 -- 至少有两个对应的 sids );</code>
Diese Abfrage gibt die PIDs von Teilen zurück, die von mindestens zwei verschiedenen Lieferanten geliefert wurden.
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL die Meldung „Ungültige Verwendung der Gruppenfunktion' aus und wie lässt sich das Problem mit HAVING beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!