SQL-Beispielvariation

Aus IV1
Version vom 14. Dezember 2011, 17:59 Uhr von Hans4mido (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<!--<yambe:breadcrumb>SQL|SQL</yambe:breadcrumb>--> {{Kurzform|Die Lerneinheit "SQL-Beispielvariation" dient der aufbauenden Erläuterung der Aggregation mittel G...“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Die Lerneinheit "SQL-Beispielvariation" dient der aufbauenden Erläuterung der Aggregation mittel GROUP BY Klausel. Die Anwendungsbeispiele sind als aktive Abfragen auf einer Trainingsdatenbank installiert.


Unterschiedliche Aggregationsstufen

Nachfolgende Beispiele liefern Ergebnisse mit unterschiedlichen Verdichtungsstufen (Aggregationsstufen) der Kennzahl Umsatz. Beginnend mit der Auflistung der Umsätze je Auftrag, fortgesetzt mit den Umsätzen je Kunde und abschließend mit den Umsätzen je Region.

Aus der Logik der Aggregierung ist abzuleiten, dass den Ergebnissen unterschiedliche Merkmale (Felder) beizufügen sind. In der Regel macht es keinen Sinn, Merkmale einer niedrigeren Aggregationsstufe als für die Verdichtung gewählt, in die Merkmalsliste aufzunehmen. So liefert z. B. das Merkmal "Auftragsnummer" in der Ermittlung des Umsätze je Kunde wenig Information, da Kundenumsätze in der Regel aus der Summe mehrerer Aufträge gebildet wird.

Die Zahl der Treffer verringert sich, je höher die Aggregationsstufe, die Werte hingegen steigen.

Umsätze je Auftrag

SELECT Kunde.Nr AS 'Kundennr.', Kunde.Nachname, Auftrag.Nr AS 'Auftragsnr.', SUM(Auftragspos.Menge*Buch.Preis) AS 'Umsatz/Auftrag'
FROM Kunde, Auftrag, Auftragspos, Buch
WHERE Kunde.Nr=Auftrag.Kundennummer AND Auftrag.Nr=Auftragspos.Auftragsnummer AND Auftragspos.Buchnummer=Buch.Nr
GROUP BY Auftrag.Nr, Kunde.Nr, Kunde.Nachname
ORDER BY 2,3

<html> <form method="post" action="http://sql.idv.edu/thema/work/sql.php" target="_blank"> <input type="hidden" name="select" value="<html> <form method="post" action="http://sql.idv.edu/thema/work/sql.php" target="_blank"> <input type="hidden" name="select" value="SELECT Kunde.Nr AS 'Kundennr.', Kunde.Nachname, Auftrag.Nr AS 'Auftragsnr.', SUM(Auftragspos.Menge*Buch.Preis) AS 'Umsatz/Auftrag' FROM Kunde, Auftrag, Auftragspos, Buch WHERE Kunde.Nr=Auftrag.Kundennummer AND Auftrag.Nr=Auftragspos.Auftragsnummer AND Auftragspos.Buchnummer=Buch.Nr GROUP BY Auftrag.Nr, Kunde.Nr, Kunde.Nachname ORDER BY 2,3"> <input type="submit" value="Ausführen"> </form>