Gruppierung Teil 2
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 37 von 72.
Das Schlüsselwort WHERE führt eine Bedingung für jeden Datensatz einzeln aus. Zum Beispiel:
SELECT * FROM table1
WHERE col1 > col2col1 > col2 wird für jeden Datensatz ausgeführt und prüft, ob die Bedingung erfüllt ist.
Aber was ist, wenn wir aggregierte Ergebnisse filtern möchten? Zum Beispiel:
SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY categoryDas wird nicht funktionieren, weil WHERE keine Aggregationen prüfen kann. Dafür gibt es das Schlüsselwort HAVING. Es filtert Daten anhand der Aggregatbedingung.
SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40Dadurch werden alle Kategorien gefiltert, deren Durchschnittspreis größer als 40 ist.
Wenn wir die HAVING- und WHERE-Klauseln kombinieren möchten, schreiben wir:
SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40Dies wird zunächst Datensatz für Datensatz durchgehen und alle Datensätze herausfiltern, für die price größer als 25 ist, und erst danach die GROUP BY-Klausel ausführen und jede category herausfiltern, für die der Durchschnitt von price größer als 40 ist.
Aufgabe
MittelVerfügbare Tabellen und Spalten:
earthquakes:location,amplitude,period
Die Richterskala ist eine logarithmische Skala, die zur Messung der Magnitude von Erdbeben verwendet wird.
Wir müssen die durchschnittliche Magnitude für jeden Ort aller schweren Erdbeben zurückgeben.
Ein schweres Erdbeben ist definiert als:
- Die Amplitude ist größer oder gleich 1.
- Die Periodendauer der Wellen ist größer oder gleich 1 Minute.
Für diese Aufgabe verwenden wir eine andere Formel: M = (A/T)<sup>2</sup> / T, die äquivalent zu M = ((A/T)*(A/T)) / T ist.
Gib den Ort und die durchschnittliche Magnitude jedes Ortes zurück und berücksichtige dabei nur die schweren Erdbeben (benenne die Spalte avg_magnitude). Nimm in dein Ergebnis nur die Orte auf, an denen avg_magnitude größer als 1 ist.
Runde die Ergebnisse auf 2 Dezimalstellen.
Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Weitere Schlüsselwörter
Das IN-SchlüsselwortDas BETWEEN-SchlüsselwortDas LIKE-SchlüsselwortDas AS-SchlüsselwortRückblick – Handymodelle7Datumsangaben
Datumsangaben behandeln – Teil 1Datumsangaben behandeln – Teil 2Datumsangaben behandeln – Teil 32Bedingungen
Grundlagen der BedingungenDas Schlüsselwort ANDDas Schlüsselwort ORDas Schlüsselwort NOTMehrere kombinierte BedingungenKlammernBoolesche Werte5Arithmetische Operationen
Mathematische OperatorenMathematische SpaltenDie Modulo-OperationDie ROUND()-Funktion3Spezifisches Rückgabeformat
NULL-WerteErgebnisse sortieren Teil 1Ergebnisse sortieren Teil 2Zusammenfassung - Cyber Security FirmAnzahl der Datensätze begrenzenZusammenfassung - Vehicle Factory6Einführungsaufgaben
Wiederholung – ParlamentswahlWiederholung – Festnahme eines Straftäters durch die PolizeiWiederholung – Getränkebehälter an der BarWiederholung – Neue Spalten erstellenÜbe selbstständig: SQL-Playground