Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

5 Verdichten von Daten mit Gruppenfunktionen. 5-2 Ziele Kennenlernen der vorhandenen Gruppenfunktionen Anwendung von Gruppenfunktionen Gruppieren von.

Ähnliche Präsentationen


Präsentation zum Thema: "5 Verdichten von Daten mit Gruppenfunktionen. 5-2 Ziele Kennenlernen der vorhandenen Gruppenfunktionen Anwendung von Gruppenfunktionen Gruppieren von."—  Präsentation transkript:

1 5 Verdichten von Daten mit Gruppenfunktionen

2 5-2 Ziele Kennenlernen der vorhandenen Gruppenfunktionen Anwendung von Gruppenfunktionen Gruppieren von Daten mittels GROUP BY Klausel Selektieren von Gruppen unter Anwendung der HAVING Klausel Kennenlernen der vorhandenen Gruppenfunktionen Anwendung von Gruppenfunktionen Gruppieren von Daten mittels GROUP BY Klausel Selektieren von Gruppen unter Anwendung der HAVING Klausel

3 5-3 Was sind Gruppenfunktionen? Gruppenfunktionen operieren auf Mengen von Zeilen und ergeben ein Resultat pro Gruppe. EMP Maximales Gehalt in Gehalt in EMP Tabelle DEPTNO SAL MAX(SAL)

4 5-4 Typen von Gruppenfunktionen AVG COUNT MAX MIN SUM STDDEV VARIANCE AVG COUNT MAX MIN SUM STDDEV VARIANCE

5 5-5 Einsatz von Gruppenfunktionen SELECT[column,] group_function(column) FROMtable [WHEREcondition] [GROUP BYcolumn] [ORDER BYcolumn];

6 5-6 Verwendung von AVG und SUM AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL) AVG and SUM anwendbar für numerische Daten. SQL> SELECTAVG(sal), MAX(sal), 2MIN(sal), SUM(sal) 3FROMemp 4WHEREjob LIKE 'SALES%';

7 5-7 Anwendung von MIN und MAX MIN and MAX für beliebigen Datentyp geeignet. SQL> SELECTMIN(hiredate), MAX(hiredate) 2 FROMemp; MIN(HIRED MAX(HIRED DEC JAN-83

8 5-8 COUNT-Funktion COUNT(*) SQL> SELECTCOUNT(*) 2 FROMemp 3 WHEREdeptno = 30; COUNT(*) liefert die Anzahl von Zeilen in einer Tabelle.

9 5-9 Anwendung der COUNT- Funktion COUNT(expr) liefert die Anzahl Zeilen, die nicht null sind. SQL> SELECTCOUNT(comm) 2 FROMemp 3 WHEREdeptno = 30; COUNT(COMM)

10 5-10 Gruppenfunktion und Nullwerte Gruppenfunktionen ignorieren Nullwerte in der Spalte. SQL> SELECT AVG(comm) 2 FROM emp; AVG(COMM)

11 5-11 Anwendung der NVL Funktion auf Gruppenfunktionen Die NVL-Funktion zwingt Gruppenfunk- tionen zur Einbeziehung von Nullwerten. SQL> SELECT AVG(NVL(comm,0)) 2 FROM emp; AVG(NVL(COMM,0))

12 5-12 Gruppierung von Daten EMP durchschnittl. Gehalt in EMP Tabelle für jede Abteilung DEPTNO SAL DEPTNO AVG(SAL)

13 5-13 Gruppierung von Daten: GROUP BY Klausel SELECTcolumn, group_function(column) FROMtable [WHEREcondition] [GROUP BYgroup_by_expression] [ORDER BYcolumn]; Aufteilung von Zeilen in einer Tabelle in kleinere Gruppen durch Anwendung der GROUP BY Klausel.

14 5-14 Anwendung der GROUP BY Klausel Alle Spalten in der SELECT Liste, die nicht in Funktionen verwendet werden, müssen in der GROUP BY Klausel stehen. SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO AVG(SAL)

15 5-15 Anwendung von GROUP BY Die GROUP BY Spalte braucht nicht in der SELECT Liste enthalten zu sein. SQL> SELECT AVG(sal) 2 FROM emp 3 GROUP BY deptno; AVG(SAL)

16 5-16 Gruppierung nach mehreren Spalten EMP summiere Gehälter in der EMP Tabelle für jeden Job,, gruppiert nach Abteilung DEPTNO JOB SAL MANAGER PRESIDENT CLERK CLERK CLERK ANALYST MANAGER SALESMAN MANAGER SALESMAN CLERK SALESMAN SALESMAN 1250 JOB SUM(SAL) CLERK 1300 MANAGER 2450 PRESIDENT 5000 ANALYST 6000 CLERK 1900 MANAGER 2975 CLERK 950 MANAGER 2850 SALESMAN 5600 DEPTNO

17 5-17 Anwendung von GROUP BY bei mehreren Spalten SQL> SELECT deptno, job, sum(sal) 2 FROM emp 3 GROUP BY deptno, job; DEPTNO JOB SUM(SAL) CLERK MANAGER PRESIDENT ANALYST CLERK rows selected.

18 5-18 Illegale Anfragen mit Gruppenfunktionen Jede Spalte oder Ausdruck in der SELECT Liste, welche nicht Aggregatfunktion sind, müssen in der GROUP BY Klausel ent- halten sein. SQL> SELECTdeptno, COUNT(ename) 2 FROMemp; SQL> SELECTdeptno, COUNT(ename) 2 FROMemp; SELECT deptno, COUNT(ename) * ERROR at line 1: ORA-00937: not a single-group group function SELECT deptno, COUNT(ename) * ERROR at line 1: ORA-00937: not a single-group group function Column missing in the GROUP BY clause

19 5-19 Illegale Anfragen mit Gruppenfunktionen WHERE-Klausel zum Filtern von Gruppen verboten. Dafür gibts die HAVING Klausel. WHERE-Klausel zum Filtern von Gruppen verboten. Dafür gibts die HAVING Klausel. SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 WHERE AVG(sal) > GROUP BY deptno; SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 WHERE AVG(sal) > GROUP BY deptno; WHERE AVG(sal) > 2000 * ERROR at line 3: ORA-00934: group function is not allowed here WHERE AVG(sal) > 2000 * ERROR at line 3: ORA-00934: group function is not allowed here Cannot use the WHERE clause to restrict groups to restrict groups Cannot use the WHERE clause to restrict groups to restrict groups

20 5-20 Ausschließen von Gruppen Maximales Gehalt pro Abteilung größer als $2900 EMP DEPTNO SAL DEPTNO MAX(SAL)

21 5-21 Ausschließen von Gruppen: HAVING Klausel HAVING Klausel zum Filtern von Gruppen – Zeilen werden gruppiert. – Gruppenfunktion angewendet. – Gruppen, die die HAVING Klausel erfüllen, werden angezeigt. HAVING Klausel zum Filtern von Gruppen – Zeilen werden gruppiert. – Gruppenfunktion angewendet. – Gruppen, die die HAVING Klausel erfüllen, werden angezeigt. SELECTcolumn, group_function FROMtable [WHEREcondition] [GROUP BYgroup_by_expression] [HAVINGgroup_condition] [ORDER BYcolumn];

22 5-22 Anwendung der HAVING Klausel SQL> SELECT deptno, max(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING max(sal)>2900; DEPTNO MAX(SAL)

23 5-23 Anwendung der HAVING Klausel SQL> SELECT job, SUM(sal) PAYROLL 2 FROM emp 3 WHERE job NOT LIKE 'SALES%' 4 GROUP BY job 5 HAVING SUM(sal)> ORDER BY SUM(sal); JOB PAYROLL ANALYST 6000 MANAGER 8275

24 5-24 Schachtelung von Funktionen SQL> SELECT max(avg(sal)) 2 FROM emp 3 GROUP BY deptno; MAX(AVG(SAL)) Wie groß ist das maximale Durchschnitts- gehalt in einer Abteilung?

25 5-25 Zusammenfassung SELECTcolumn, group_function(column) FROMtable [WHEREcondition] [GROUP BYgroup_by_expression] [HAVINGgroup_condition] [ORDER BYcolumn]; Reihenfolge der Auswertung der Klauseln: WHERE Klausel GROUP BY Klausel HAVING Klausel Reihenfolge der Auswertung der Klauseln: WHERE Klausel GROUP BY Klausel HAVING Klausel

26 5-26 Übungen Anwendung von Gruppenfunktionen in verschiedenen Anfragen Bildung von Gruppen zur Darstellung von mehreren Ergebnissen Ausschließen von Gruppen mittels HAVING Klausel Anwendung von Gruppenfunktionen in verschiedenen Anfragen Bildung von Gruppen zur Darstellung von mehreren Ergebnissen Ausschließen von Gruppen mittels HAVING Klausel


Herunterladen ppt "5 Verdichten von Daten mit Gruppenfunktionen. 5-2 Ziele Kennenlernen der vorhandenen Gruppenfunktionen Anwendung von Gruppenfunktionen Gruppieren von."

Ähnliche Präsentationen


Google-Anzeigen