Funzioni di aggregazione
Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 68 di 72.
Le funzioni di aggregazione vengono utilizzate per calcolare AVG() o MAX() o qualsiasi altra funzione di aggregazione fino alla riga corrente.
Ad esempio, potremmo calcolare il ricavo massimo ottenuto fino a ciascun periodo finale:
| mese | ricavi | regione |
| 4 | 40 | Est |
| 5 | 20 | Est |
| 6 | 60 | Ovest |
| 7 | 55 | Ovest |
| 8 | 61 | Est |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Questo restituirà:
| mese | ricavi | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
Per i mesi 4 e 5, il ricavo massimo è 40; per i mesi 6 e 7 è 60, e per il mese 8 è 61. Questo perché quando trova un nuovo ricavo più alto, scarta quello vecchio e usa il più alto trovato finora.
Per la funzione AVG() sarà così:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| mese | ricavi | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
Possiamo anche raggruppare i nostri calcoli per categorie specifiche usando PARTITION BY. Ad esempio:
SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1Ci darebbe:
| month | revenue | region | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
Ora il massimo viene calcolato separatamente per ogni regione. La regione East e la regione West mantengono indipendentemente i propri massimi progressivi.
Sfida
FacileTabelle e colonne disponibili:
books:book,page,words
Per ogni libro, mostra il nome del libro, il numero totale di pagine, il numero di parole su ogni pagina e calcola:
- Il numero massimo di parole trovate in una qualsiasi pagina di quel libro
- Il numero medio di parole per pagina per l'intero libro
- La differenza tra il numero di parole della pagina corrente e il numero medio di parole per pagina del libro
Mostra i risultati ordinati per libro e numero di pagina.
Restituisci le seguenti colonne:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_from_avg
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