Lezioni del modulo (4/4)
Contare e riassumere: COUNT, AVG, MAX
Finora ogni SELECT restituiva una riga per ogni riga della tabella. Le
funzioni di aggregazione fanno l'opposto: leggono molte righe e
restituiscono un solo valore che le riassume.
Le tre più usate sono:
COUNT(*)— quante righe ci sono.AVG(colonna)— la media dei valori numerici (ignora iNULL).MAX(colonna)/MIN(colonna)— il valore massimo / minimo.SUM(colonna)— la somma dei valori numerici.
SELECT COUNT(*),
AVG(salary),
MAX(salary)
FROM employees;Quando l'aggregato è applicato all'intera tabella (senza GROUP BY, che vedrai
nel prossimo modulo) il risultato è una sola riga, indipendentemente da
quante righe ha la tabella di partenza.
Combinare con WHERE
WHERE filtra prima dell'aggregazione: l'aggregato lavora solo sulle
righe che hanno superato il filtro.
-- Stipendio medio dei soli dipendenti del Marketing (department_id = 3):
SELECT AVG(salary)
FROM employees
WHERE department_id = 3;Prova tu
Quanti dipendenti sono stati assunti dal 1° gennaio 2020 in poi? Restituisci un singolo numero (una riga, una colonna).
Mostra suggerimento
La funzione che conta le righe è COUNT(*).
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Calcola in un'unica query lo stipendio medio (AVG) e quello massimo (MAX) dei dipendenti del Marketing (department_id = 3). Una riga, due colonne.
Mostra suggerimento
Puoi mettere più funzioni di aggregazione nella stessa SELECT, separate da virgola.
Soluzione disponibile dopo 3 tentativi