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 > col2col1 > 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 categoryQuesto 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) > 40Questo 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) > 40Per 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.
Sfida
MedioTabelle 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
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Altre parole chiave
La parola chiave INLa parola chiave BETWEENLa parola chiave LIKELa parola chiave ASRiepilogo - Modelli di telefoni cellulari2Condizioni
Basi delle condizioniLa parola chiave ANDLa parola chiave ORLa parola chiave NOTCombinare più condizioniParentesiValori booleani5Operazioni aritmetiche
Operatori matematiciColonne matematicheL’operazione moduloLa funzione ROUND()3Formato di restituzione specifico
Valori nullOrdinare i risultati Parte 1Ordinare i risultati Parte 2Riepilogo - Azienda di sicurezza informaticaLimitare il numero di recordRiepilogo - Fabbrica di veicoli6Sfide introduttive
Ripasso - Elezione parlamentareRipasso - Arresto di un criminale da parte della poliziaRipasso - Contenitore per bevande da barRipasso - Progetta nuove colonne9Tabelle multiple
JOIN di base, parte 1JOIN di base, parte 2Riepilogo - JOINSelf joinRiepilogo - Self joinUNIONSemplificare le query, parola chiave WITHRiepilogo - Query con WITHRiepilogo - Impresa edile immobiliare12Funzioni finestra, parte 2
Funzioni RANK e DENSE_RANKRipasso: RANK e DENSE_RANKFunzione NTILEFunzioni di aggregazioneCriteri ROWS e RANGEEsercitati da solo: Playground SQL