Direkt zum Inhalt

BPE 6 · J1

Daten mit Aggregaten auswerten

Du beantwortest Mengen-, Umsatz- und Durchschnittsfragen und unterscheidest dabei Zeilenanzahl, bekannte Werte und unterschiedliche Werte.

Bildungsplanbezug: BPE 6.4 · interne Lerneinheit 6.2.4

Geschätzte Lernzeit: 40 Minuten

Noch nicht begonnen

Das kannst du danach

  • COUNT, SUM, AVG, MIN und MAX einsetzen
  • COUNT(*) und COUNT(spalte) unterscheiden
  • vor einer Aggregation mit WHERE filtern
  • Aggregatergebnisse für leere Mengen erklären

Verständlich erklärt

Ein Aggregat fasst viele Eingabezeilen zu einem Ergebnis zusammen. COUNT(*) zählt alle Zeilen; COUNT(spalte) zählt nur nicht-NULL-Werte. COUNT(DISTINCT spalte) zählt verschiedene bekannte Werte. SUM addiert, AVG berechnet den Mittelwert, MIN und MAX bestimmen Extremwerte. NULL-Werte werden von diesen Spaltenaggregaten nicht als null Euro mitgerechnet. Bei einer leeren Eingabemenge liefert COUNT 0, SUM und AVG liefern NULL. Gib berechneten Ergebnissen mit AS aussagekräftige Namen.

  • Aggregatfunktion
  • COUNT
  • SUM
  • AVG
  • MIN
  • MAX
  • NULL

Beispiel

SELECT COUNT(*) AS zeilen,
       COUNT(standort) AS mit_standort
FROM medium;

Typische Fehler

  • COUNT(spalte) mit der Zahl aller Datensätze verwechseln
  • Zeilensummen und Summe aller Zeilen verwechseln
  • NULL bei leerer Menge ungefragt als 0 interpretieren

Kurz zusammengefasst

Bestimme zuerst, welche Zeilen in die Auswertung gehören, danach die passende Aggregatfunktion. Die Behandlung von NULL ist Teil der fachlichen Aussage.

Abi-Bezug

Wähle die richtige Aggregation für eine Kennzahl und erläutere, wie fehlende Werte oder eine leere Auswahl ihr Ergebnis beeinflussen.

Jetzt selbst ausprobieren

Prüfe deine Lösung automatisch. Bei Bedarf helfen dir ein Tipp und anschließend die Musterlösung.

BPE 6J11 Punkteleicht

Alle Artikelpositionen zählen

Noch nicht begonnen

Aufgabenstellung

Zähle die Artikelzeilen im Sortiment. Gesucht ist die Anzahl verschiedener Artikelpositionen, nicht die Summe ihrer Bestände. Nenne das Ergebnis anzahl.

Ergebnisspalten in dieser Reihenfolge: anzahl. Die Zeilenreihenfolge ist hier beliebig. Gib genau diese eine Ergebnistabelle aus.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE artikel (id INTEGER PRIMARY KEY, bezeichnung TEXT NOT NULL, kategorie TEXT NOT NULL, preis INTEGER NOT NULL, bestand INTEGER NOT NULL, lieferant_id INTEGER);
Startdaten: artikel
idbezeichnungkategoriepreisbestandlieferant_id
1Heft A5Papier2121
2Block A4Papier401
3FinelinerStifte382
4BleistiftStifte1202
5OrdnerAblage551
6MappeAblage30NULL
7MarkerStifte35NULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Jede Zeile ist eine Artikelposition.
  2. COUNT(*) zählt Zeilen, SUM(bestand) würde Stückzahlen addieren.
Lösung anzeigen
SELECT COUNT(*) AS anzahl FROM artikel;
BPE 6J11 Punkteleicht

Bekannte und unterschiedliche Lieferanten

Noch nicht begonnen

Aufgabenstellung

Berechne in einer Ergebniszeile die Anzahl der Artikel mit bekannter lieferant_id als zugeordnet und die Anzahl unterschiedlicher bekannter Lieferanten-IDs als lieferanten.

Ergebnisspalten in dieser Reihenfolge: zugeordnet, lieferanten. Die Zeilenreihenfolge ist hier beliebig. Gib genau diese eine Ergebnistabelle aus.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE artikel (id INTEGER PRIMARY KEY, bezeichnung TEXT NOT NULL, kategorie TEXT NOT NULL, preis INTEGER NOT NULL, bestand INTEGER NOT NULL, lieferant_id INTEGER);
Startdaten: artikel
idbezeichnungkategoriepreisbestandlieferant_id
1Heft A5Papier2121
2Block A4Papier401
3FinelinerStifte382
4BleistiftStifte1202
5OrdnerAblage551
6MappeAblage30NULL
7MarkerStifte35NULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. COUNT(lieferant_id) übergeht die beiden NULL-Werte.
  2. DISTINCT zählt jede bekannte Lieferanten-ID nur einmal.
Lösung anzeigen
SELECT COUNT(lieferant_id) AS zugeordnet, COUNT(DISTINCT lieferant_id) AS lieferanten FROM artikel;
BPE 6J12 Punktemittel

Gesamten Warenwert berechnen

Noch nicht begonnen

Aufgabenstellung

Berechne den gesamten Warenwert des vorhandenen Bestands in Euro als gesamtwert. Jeder Artikel trägt Preis mal Bestand bei.

Ergebnisspalten in dieser Reihenfolge: gesamtwert. Die Zeilenreihenfolge ist hier beliebig. Gib genau diese eine Ergebnistabelle aus.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE artikel (id INTEGER PRIMARY KEY, bezeichnung TEXT NOT NULL, kategorie TEXT NOT NULL, preis INTEGER NOT NULL, bestand INTEGER NOT NULL, lieferant_id INTEGER);
Startdaten: artikel
idbezeichnungkategoriepreisbestandlieferant_id
1Heft A5Papier2121
2Block A4Papier401
3FinelinerStifte382
4BleistiftStifte1202
5OrdnerAblage551
6MappeAblage30NULL
7MarkerStifte35NULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Berechne zuerst je Artikel preis * bestand.
  2. SUM fasst anschließend diese einzelnen Warenwerte zusammen.
Lösung anzeigen
SELECT SUM(preis * bestand) AS gesamtwert FROM artikel;
BPE 6J12 Punktemittel

Mittlerer Preis einer Artikelposition

Noch nicht begonnen

Aufgabenstellung

Berechne den Durchschnitt der sieben Einzelpreise als durchschnitt. Jede Artikelposition zählt gleich stark, unabhängig von ihrem Bestand.

Ergebnisspalten in dieser Reihenfolge: durchschnitt. Die Zeilenreihenfolge ist hier beliebig. Gib genau diese eine Ergebnistabelle aus.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE artikel (id INTEGER PRIMARY KEY, bezeichnung TEXT NOT NULL, kategorie TEXT NOT NULL, preis INTEGER NOT NULL, bestand INTEGER NOT NULL, lieferant_id INTEGER);
Startdaten: artikel
idbezeichnungkategoriepreisbestandlieferant_id
1Heft A5Papier2121
2Block A4Papier401
3FinelinerStifte382
4BleistiftStifte1202
5OrdnerAblage551
6MappeAblage30NULL
7MarkerStifte35NULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. AVG bildet den Mittelwert der Werte einer Spalte.
  2. Eine Gewichtung mit bestand wäre hier eine andere fachliche Kennzahl.
Lösung anzeigen
SELECT AVG(preis) AS durchschnitt FROM artikel;
BPE 6J12 Punktemittel

Günstigster und höchster Preis

Noch nicht begonnen

Aufgabenstellung

Gib den kleinsten Preis als minimum und den größten Preis als maximum gemeinsam in einer Ergebniszeile aus.

Ergebnisspalten in dieser Reihenfolge: minimum, maximum. Die Zeilenreihenfolge ist hier beliebig. Gib genau diese eine Ergebnistabelle aus.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE artikel (id INTEGER PRIMARY KEY, bezeichnung TEXT NOT NULL, kategorie TEXT NOT NULL, preis INTEGER NOT NULL, bestand INTEGER NOT NULL, lieferant_id INTEGER);
Startdaten: artikel
idbezeichnungkategoriepreisbestandlieferant_id
1Heft A5Papier2121
2Block A4Papier401
3FinelinerStifte382
4BleistiftStifte1202
5OrdnerAblage551
6MappeAblage30NULL
7MarkerStifte35NULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. MIN und MAX bestimmen jeweils einen Extremwert.
  2. Du kannst beide Aggregate in dieselbe SELECT-Liste schreiben.
Lösung anzeigen
SELECT MIN(preis) AS minimum, MAX(preis) AS maximum FROM artikel;
BPE 6J13 Punkteanspruchsvoll

Was ergibt eine leere Auswahl?

Noch nicht begonnen

Aufgabenstellung

Wähle nur Artikel der hier nicht vorhandenen Kategorie Technik. Berechne ihre Zeilenanzahl als anzahl und die Summe ihrer Bestände als stueck. Ersetze SQL-NULL nicht durch 0.

Ergebnisspalten in dieser Reihenfolge: anzahl, stueck. Die Zeilenreihenfolge ist hier beliebig. Gib genau diese eine Ergebnistabelle aus.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE artikel (id INTEGER PRIMARY KEY, bezeichnung TEXT NOT NULL, kategorie TEXT NOT NULL, preis INTEGER NOT NULL, bestand INTEGER NOT NULL, lieferant_id INTEGER);
Startdaten: artikel
idbezeichnungkategoriepreisbestandlieferant_id
1Heft A5Papier2121
2Block A4Papier401
3FinelinerStifte382
4BleistiftStifte1202
5OrdnerAblage551
6MappeAblage30NULL
7MarkerStifte35NULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. WHERE filtert die Eingabezeilen vor den Aggregaten.
  2. Bei leerer Menge ist COUNT gleich 0, SUM aber NULL.
Lösung anzeigen
SELECT COUNT(*) AS anzahl, SUM(bestand) AS stueck FROM artikel WHERE kategorie = 'Technik';

Lektionsabschluss

Bearbeite Aufgaben, um deine Auswertung zu sehen.