MySQL-Fehler 1111 beheben: Ungültige Verwendung der Gruppenfunktion
Bei der Verwendung von MySQL kann der Fehler „Fehler 1111 (HY000)“ auftreten: „Ungültige Verwendung der Gruppenfunktion“ beim Versuch, Daten mit einer Gruppenfunktion wie COUNT(*) zu aggregieren und gleichzeitig nach einer Spalte zu gruppieren.
Um diesen Fehler zu beheben, vermeiden Sie die Verwendung von Gruppenfunktionen in der SELECT-Klausel, wenn Sie Folgendes ausführen: GROUP BY-Vorgang. Verwenden Sie stattdessen eine Unterabfrage oder die ORDER BY-Klausel, um den gewünschten Maximalwert abzurufen.
Betrachten Sie das folgende Beispiel:
<code class="mysql">SELECT name, MAX(COUNT(*)) AS max_count FROM table GROUP BY name;</code>
Diese Abfrage gibt einen Fehler zurück, weil COUNT() wird in der SELECT-Klausel verwendet und gleichzeitig nach Namen gruppiert. Um dies zu beheben, entfernen Sie COUNT() aus der SELECT-Klausel und verwenden Sie es als Unterabfrage innerhalb der MAX-Funktion:
<code class="mysql">SELECT MAX((SELECT COUNT(*) FROM table WHERE name = t.name)) AS max_count FROM table t GROUP BY name;</code>
Nachdem Sie diese Abfrage ausgeführt haben, erhalten Sie für jeden die maximale Anzahl von Datensätzen Namen in der Tabelle. Alternativ können Sie die ORDER BY-Klausel verwenden, um die Ergebnisse nach der Anzahl zu ordnen und dann nur den ersten Datensatz abzurufen:
<code class="mysql">SELECT name, COUNT(*) AS count FROM table GROUP BY name ORDER BY count DESC LIMIT 1;</code>
Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler 1111: Ungültige Verwendung der Gruppenfunktion beim Gruppieren nach einer Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!