Menu
Coddy logo textTech

Built-In Aggregate Part 2

Teil des Abschnitts Grundlagen der SQL-Journey von Coddy — Lektion 35 von 72.

Manchmal müssen wir Aggregatfunktionen auf komplexere Weise verwenden, wie z. B. das Vergleichen jeder Zeile mit einem Aggregatwert. Hier kommen verschachtelte Abfragen ins Spiel.

Wenn Sie Berechnungen durchführen möchten, die einzelne Zeilen mit aggregierten Werten kombinieren, müssen Sie eine verschachtelte Abfrage verwenden. Hier ist der Grund:
Das funktioniert nicht:

SELECT value + MIN(value)
FROM table1

Der Grund ist, dass Aggregatfunktionen auf die gesamte Spalte anwenden, während die 'value'-Referenz versucht, zeilenweise zu arbeiten. Um dies zu lösen, verwenden wir eine verschachtelte Abfrage:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

Das funktioniert, weil die verschachtelte Abfrage (SELECT MIN(value) FROM table1) zuerst ausgeführt wird und einen einzelnen Wert zurückgibt, der dann in der Hauptabfrage für jede Zeile verwendet werden kann.

Häufige Anwendungsfälle für verschachtelte Aggregate:
1. Vergleichen jedes Werts mit dem Durchschnitt

2. Berechnung des Prozentsatzes vom Gesamten

3. Unterschiede zu maximalen oder minimalen Werten finden

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • <strong>items</strong>: <strong>id</strong>, <strong>price</strong>

Berechnen Sie, um wie viel der Preis jedes Items den durchschnittlichen Preis aller Items übersteigt. Zeigen Sie die Item-ID, seinen Preis und die Differenz zum Durchschnitt an. Nennen Sie die Differenzspalte diff_from_avg.

Ordnen Sie die Ergebnisse nach der Differenz in absteigender Reihenfolge.

Spickzettel

Beim Kombinieren einzelner Zeilen mit Aggregatwerten sollten Sie verschachtelte Abfragen verwenden, da Aggregatfunktionen auf gesamte Spalten wirken, während reguläre Spalten zeilenweise arbeiten.

Das funktioniert nicht:

SELECT value + MIN(value)
FROM table1

Verwenden Sie stattdessen eine verschachtelte Abfrage:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

Die verschachtelte Abfrage wird zuerst ausgeführt und gibt einen einzelnen Wert zurück, der in der Hauptabfrage für jede Zeile verwendet werden kann.

Häufige Anwendungsfälle:

  • Vergleichen jedes Werts mit dem Durchschnitt
  • Berechnen des Prozentsatzes vom Gesamten
  • Finden der Abweichungen von maximalen oder minimalen Werten

Probier es selbst

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen