Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie behebt man den MySQL-Fehler 1111: Ungültige Verwendung der Gruppenfunktion beim Gruppieren nach einer Spalte?

DDD
Freigeben: 2024-10-24 12:15:01
Original
897 Leute haben es durchsucht

How to Fix MySQL Error 1111: Invalid Use of Group Function When Grouping By a Column?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage