Heim > Datenbank > MySQL-Tutorial > Warum gibt meine SQL-Abfrage „GROUP BY' ohne Aggregatfunktionen einen Fehler zurück?

Warum gibt meine SQL-Abfrage „GROUP BY' ohne Aggregatfunktionen einen Fehler zurück?

DDD
Freigeben: 2024-12-24 21:42:11
Original
747 Leute haben es durchsucht

Why Does My SQL `GROUP BY` Query Without Aggregate Functions Return an Error?

GROUP BY-Funktion ohne Aggregatfunktionen

Das Verständnis der GROUP BY-Operation kann eine Herausforderung sein, insbesondere wenn Aggregatfunktionen ausgeschlossen werden. Dieser Artikel befasst sich eingehend mit dem Konzept und seinen Auswirkungen.

Im bereitgestellten Beispiel haben Sie versucht, eine GROUP BY-Operation für die EMP-Tabelle ohne Aggregatfunktionen auszuführen, was zu mehreren Fehlern führte. Die Fehlermeldung „Kein GROUP BY-Ausdruck“ weist darauf hin, dass die in der GROUP BY-Klausel angegebenen Spalten mit den in der SELECT-Anweisung ausgewählten Spalten übereinstimmen müssen.

Um zu verstehen, warum dies notwendig ist, ist es wichtig zu verstehen, wie GROUP BY wandelt mehrere Zeilen in eine einzelne Zeile um. Beim Kombinieren von Zeilen ist eine Anleitung zum Umgang mit Spalten mit unterschiedlichen Werten erforderlich. Daher muss jede Spalte, die Sie in die SELECT-Anweisung aufnehmen, entweder:

  • in der GROUP BY-Klausel enthalten sein
  • in einer Aggregatfunktion verwendet werden

Betrachten Sie beispielsweise die folgende Tabelle:

Name | OrderNumber
------------------
John | 1
John | 2
Nach dem Login kopieren

Wenn Sie ein GROUP BY nur für den Namen ausführen, erfordert das Ergebnis eine Regel zur Auswahl der Bestellnummer. Die Optionen sind:

  • OrderNumber in die GROUP BY-Klausel aufnehmen: Dies erzeugt zwei Zeilen:

    • John | 1
    • Johannes | 2
  • Verwenden Sie eine Aggregatfunktion:

    • MAX(OrderNumber): Ergebnis: John | 2
    • SUM(OrderNumber): Ergebnis: John | 3

Durch den Abgleich der Spalten in den SELECT- und GROUP BY-Anweisungen stellt Oracle eine konsistente Datenmanipulation sicher und vermeidet Mehrdeutigkeiten.

Das obige ist der detaillierte Inhalt vonWarum gibt meine SQL-Abfrage „GROUP BY' ohne Aggregatfunktionen einen Fehler zurück?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage