faecher:informatik:oberstufe:datenbanken:sql_gruppierungen:lsg:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:oberstufe:datenbanken:sql_gruppierungen:lsg:start [10.11.2020 09:03] sbelfaecher:informatik:oberstufe:datenbanken:sql_gruppierungen:lsg:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== Gruppierungen: Lösungen zu den Aufgaben ====== 
  
-**(1)** 
- 
-^Funktion ^ Bedeutung ^ Wert in Gruppe ''APreis=9.99'' ^ 
-| AVG     | Durchschnittlicher Bestand in der den Preiskategorien   | AVG(ABestand)=87 | 
-| COUNT     | COUNT(ABestand)= | 
-| MAX       | MAX(ABestand)= | 
-| MIN       | MIN(ABestand)= | 
-| SUM       | SUM(ABestand)= | 
- 
- 
- 
-**(2)** 
- 
-(i) 
- 
-<code sql> 
-SELECT APreis, SUM(ABestand) AS Bestandssumme  
-FROM `artikel`  
-WHERE APreis <= 10 
-GROUP BY Apreis 
-ORDER BY APreis,Bestandssumme  
-</code> 
- 
-(ii) Gruppiert wird nach APreis und nach ABestand, in der ersten Spalte kann man sich zusätzlich mit ''COUNT(*)'' noch ausgeben lassen, wieviele Datensätze in dieser Gruppe zusammengefasst werden. 
- 
-<code sql> 
-SELECT COUNT(*), APreis, ABestand 
-FROM artikel 
-GROUP BY APreis, ABestand 
-</code> 
- 
-(iii) Die Abfrage ermittelt die Zahl der Datensätze, die einen identischen Bestand aufweisen. Z.B. "80 - 3", es gibt 3 Datensätze, deren Bestand mit 80 Exemplaren vermerkt ist. Siehe auch die Bedeutung von COUNT(*) bei der Lösung zu Aufgabe 2. 
- 
-(v) Liegt die Filterbedingung, wie in Aufgabe (2) als Tabellenattribut vor, kann man sowohl vor der Gruppierung mit ''WHERE'' als auch nach der Gruppierung mit ''HAVING'' filtern: 
- 
-<code sql> 
-SELECT APreis, SUM(ABestand) AS Bestandssumme  
-FROM `artikel`  
-WHERE APreis <= 10 
-GROUP BY APreis 
-</code> 
- 
-<code sql> 
-SELECT APreis, SUM( ABestand )  AS Bestandssumme 
-FROM  `artikel`  
-GROUP  BY APreis 
-HAVING APreis <=10 
-LIMIT 0 , 30 
-</code> 
- 
-Entsteht das Attribut der Filterung erst durch die Gruppierung selbst, kann erst nach der Gruppierung mit ''HAVING'' gefiltert werden: 
- 
-<code sql> 
-SELECT ABestand, AVG(APreis) AS Mittelpreis 
-FROM artikel 
-GROUP BY ABestand 
-WHERE Mittelpreis < 10 
-</code> 
- 
-<code sql> 
-SELECT ABestand, AVG(APreis) AS Mittelpreis 
-FROM artikel 
-GROUP BY ABestand 
-HAVING Mittelpreis < 10 
-</code> 
  • faecher/informatik/oberstufe/datenbanken/sql_gruppierungen/lsg/start.1604995436.txt.gz
  • Zuletzt geändert: 10.11.2020 09:03
  • von sbel