Heim >Datenbank >MySQL-Tutorial >Wie funktioniert GROUP BY ohne Aggregatfunktionen in SQL?

Wie funktioniert GROUP BY ohne Aggregatfunktionen in SQL?

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 08:35:23396Durchsuche

How Does GROUP BY Work Without Aggregate Functions in SQL?

Gruppieren nach ohne Aggregatfunktionen: Den Mechanismus verstehen

GROUP BY ist eine leistungsstarke SQL-Klausel, die es uns ermöglicht, Daten basierend auf zu gruppieren und zusammenzufassen angegebenen Spalten. Während Aggregatfunktionen wie SUM, COUNT und AVG normalerweise mit GROUP BY verwendet werden, ist es auch möglich, GROUP BY ohne Aggregatfunktionen zu verwenden. Das Verständnis dieses Konzepts ist entscheidend, um die vollen Möglichkeiten von GROUP BY nutzen zu können.

Bei der Verwendung von GROUP BY ohne Aggregatfunktionen ist es wichtig zu verstehen, dass jede Gruppe zu einer einzelnen Zeile in der Ausgabe führt. Die Werte für Spalten, die nicht in der GROUP BY-Klausel enthalten sind, werden effektiv für jede Zeile in der Gruppe dupliziert.

Betrachten Sie die EMP-Tabelle:

ename | sal
-------+------
Smith  | 1000
Jones  | 1200
Davis  | 1100
Wilson | 1200
Brown  | 1300

Szenario 1: Ungültige GROUP BY-Ausdruck

SELECT ename, sal
FROM emp
GROUP BY ename, sal;

Diese Abfrage schlägt mit dem Fehler ORA-00979 fehl, da sal nicht enthalten ist die GROUP BY-Klausel. Jede Zeile hätte einen anderen Wert für sal, was zu mehreren Zeilen für jeden Mitarbeiter führen würde.

Szenario 2: Gültiger GROUP BY-Ausdruck

SELECT ename, sal
FROM emp
GROUP BY ename;

Diese Abfrage ist gültig weil es die Zeilen nach E-Namen gruppiert, wodurch eine eindeutige Zeile für jeden Mitarbeiter sichergestellt wird. Die Werte für sal werden für jede Zeile desselben Mitarbeiters dupliziert.

Szenario 3: Ungültiger GROUP BY-Ausdruck

SELECT ename, sal
FROM emp
GROUP BY sal;

Diese Abfrage ist ungültig, weil sie versucht, die Zeilen nach Gehalt zu gruppieren, was zu mehreren Zeilen für Mitarbeiter mit demselben Gehalt führen würde.

Szenario 4: Ungültiger GROUP BY-Ausdruck

SELECT empno, ename, sal
FROM emp
GROUP BY sal, ename;

Diese Abfrage ist ungültig, da die Reihenfolge der Spalten in der GROUP BY-Klausel mit der Reihenfolge der Spalten in der SELECT-Klausel übereinstimmen muss.

Szenario 5: Gültiger GROUP BY-Ausdruck

SELECT empno, ename, sal
FROM emp
GROUP BY empno, ename, sal;

Diese Abfrage ist gültig, da die Reihenfolge der Spalten in GROUP BY Die Klausel stimmt mit der Reihenfolge der Spalten in der SELECT-Klausel überein. Das Ergebnis enthält eine einzelne Zeile für jede eindeutige Kombination aus empno, ename und sal.

Zusammenfassend lässt sich sagen, dass GROUP BY ohne Aggregatfunktionen Duplikate aus den angegebenen Spalten entfernt, indem Zeilen mit denselben Werten gruppiert werden. Allerdings weisen alle Spalten, die nicht in der GROUP BY-Klausel enthalten sind, doppelte Werte in den Ausgabezeilen auf.

Das obige ist der detaillierte Inhalt vonWie funktioniert GROUP BY ohne Aggregatfunktionen in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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