opendocks:oracle-sql-nutshell-doku:nutshell-doku-03
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Aggregationen
Group-Funktionen
Auch Aggregatfunktionen genannt, berechnen einen einzigen Wert aus einer Menge von Zeilen.
| Funktion | Beschreibung |
|---|---|
COUNT(*) | Anzahl der Zeilen |
COUNT(spalte) | Anzahl der nicht Null-Werte |
SUM(spalte) | Summe der Spalteninhalte Erwartet nur Zahlen oder Null |
AVG(spalte) | Durchschnitt der Spalteninhalte Erwartet nur Zahlen oder Null |
MAX(spalte) | Größter Wert Kann angewendet werden auf Zahlen, Datum und Text (VARCHAR2) Funktioniert auf allen sortierbaren Datentypen |
MIN(spalte) | Kleinster Wert Kann angewendet werden auf Zahlen, Datum und Text (VARCHAR2) Funktioniert auf allen sortierbaren Datentypen |
LISTAGG(spalte, trennzeichen) | Werte zu einem String zusammenfassen |
STDDEV(spalte) | Standardabweichung (Die Wurzel der Varianz) Kleine Standardabweichung = Werte liegen eng beieinander Große Standardabweichung = Werte streuen stark |
VARIANCE(spalte) | Varianz (Durchschnitt der quadrierten Abweichungen vom Mittelwert) |
Wichtig!
NULL-Werte werden von allen Funktionen außerCOUNT(*)ignoriert- Ohne
GROUP BYwird die gesamte Tabelle als eine Gruppe behandelt - Spalten im
SELECT, die keine Aggregatfunktion sind, müssen imGROUP BYstehen
Beispiel:
-- Liefert Gehaltsinfos der Departments SELECT department_id, COUNT(*) AS anzahl, AVG(salary) AS durchschnittsgehalt, MAX(salary) AS hoechstgehalt FROM employees GROUP BY department_id HAVING AVG(salary) > 5000; -- Text: alphabetisch erstes/letztes SELECT MIN(last_name), MAX(last_name) FROM employees;
Filter Funktion
HAVING ist eine eigene Filter Klausel, die nach der Gruppierung eingesetzt wird.
Dabei ist es möglich Aggregatfunktionen einzusetzen.
Beispiel:
SELECT manager_id, MIN(salary) FROM employees WHERE manager_id IS NOT NULL GROUP BY manager_id HAVING MIN(salary) > 6000 -- Hier werden alle Treffer mit SALARY<6000 aussortiert. ORDER BY MIN(SALARY) DESC;
opendocks/oracle-sql-nutshell-doku/nutshell-doku-03.1775666171.txt.gz · Zuletzt geändert: 2026/04/08 18:36 von heiko
