Menu
Coddy logo textTech

Raggruppamento - Parte 2

Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 37 di 72.

La parola chiave WHERE applica una condizione separatamente a ogni record. Per esempio:

SELECT * FROM table1
WHERE col1 > col2

col1 > col2 verrà applicato a ogni record per verificare se la condizione è soddisfatta.

Ma cosa succede se vogliamo filtrare i risultati aggregati? Per esempio:

SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY category

Questo non funzionerà perché WHERE non può controllare alcuna aggregazione. Per questo, abbiamo la parola chiave HAVING. Filtra i dati in base alla condizione di aggregazione.

SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40

Questo filtrerà tutte le categorie per cui il prezzo medio è maggiore di 40.

Se vogliamo combinare la clausola HAVING e la clausola WHERE, scriveremo:

SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40

Per prima cosa esaminerà i record uno per uno e li filtrerà tutti quelli per cui il prezzo è maggiore di 25; solo dopo eseguirà la clausola GROUP BY e filtrerà ogni categoria per cui il prezzo medio è maggiore di 40.

challenge icon

Sfida

Medio

Tabelle e colonne disponibili:

  • earthquakes: location, amplitude, period

La scala Richter è una scala logaritmica usata per misurare la magnitudo dei terremoti.

Dobbiamo restituire la magnitudo media per ogni località di tutti i terremoti maggiori

Un terremoto maggiore è definito come:

  • L'ampiezza è maggiore o uguale a 1
  • Il periodo delle onde è maggiore o uguale a 1 minuto

Per questa sfida, useremo una formula diversa: M = (A/T)^2 / T, equivalente a M = ((A/T)*(A/T)) / T. Qui M è la magnitudo, A è la colonna amplitude e T è la colonna period.

Restituisci la località e la magnitudo media di ogni località includendo solo i terremoti maggiori (chiama la colonna avg_magnitude). Includi nel risultato solo le località in cui avg_magnitude è maggiore di 1

Arrotonda i risultati a 2 cifre decimali

Provalo tu

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground SQL