Benutzer-Werkzeuge

Webseiten-Werkzeuge


opendocks:oracle-sql-nutshell-doku:nutshell-doku-03

Dies ist eine alte Version des Dokuments!


Aggregationen

Group-Funktionen

Auch Aggregatfunktionen genannt, berechnen einen einzigen Wert aus einer Menge von Zeilen.

FunktionBeschreibung
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ßer COUNT(*) ignoriert
  • Ohne GROUP BY wird die gesamte Tabelle als eine Gruppe behandelt
  • Spalten im SELECT, die keine Aggregatfunktion sind, müssen im GROUP BY stehen

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.1775665472.txt.gz · Zuletzt geändert: 2026/04/08 18:24 von heiko

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki