Heim > Datenbank > MySQL-Tutorial > MySQL-Fehler: „Ungültige Verwendung der Gruppenfunktion' – WHERE vs. HAVING: Wann sollte ich welche verwenden?

MySQL-Fehler: „Ungültige Verwendung der Gruppenfunktion' – WHERE vs. HAVING: Wann sollte ich welche verwenden?

Barbara Streisand
Freigeben: 2025-01-11 22:42:41
Original
782 Leute haben es durchsucht

MySQL Error:

MySQL-Fehler: Ungültige Verwendung der Gruppierungsfunktion

Wenn bei der Verwendung von MySQL der Fehler „Ungültige Verwendung der Gruppierungsfunktion“ auftritt, stellen Sie sicher, dass Sie den Unterschied zwischen den Klauseln WHERE und HAVING verstehen.

Ziel der bereitgestellten Abfrage ist es, Teile zu finden, die von mindestens zwei Lieferanten geliefert werden. Zunächst versuchen Sie, eine WHERE-Klausel zu verwenden, um jede PID mit der Ausgabe einer Unterabfrage zu vergleichen, die SIDs berechnet. Allerdings führt MySQL das WHERE vor der Aggregation durch, was diesen Ansatz ineffektiv macht.

Die richtige Lösung ist die Verwendung der HAVING-Klausel. HAVING filtert die Ergebnisse von Aggregatfunktionen wie COUNT() und ermöglicht Ihnen so die Durchführung von Berechnungen nach der Aggregation. Durch Umschreiben der Unterabfrage mit HAVING, wie in der Antwort gezeigt:

<code class="language-sql">(
  SELECT c2.pid
  FROM Catalog AS c2
  WHERE c2.pid = c1.pid
  HAVING COUNT(c2.sid) >= 2
)</code>
Nach dem Login kopieren

Sie können die gewünschten Ergebnisse erzielen. Die HAVING-Klausel stellt sicher, dass nur Teile mit mindestens zwei Lieferanten in die Endausgabe einbezogen werden.

Das obige ist der detaillierte Inhalt vonMySQL-Fehler: „Ungültige Verwendung der Gruppenfunktion' – WHERE vs. HAVING: Wann sollte ich welche verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage