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!