Funciones de agregación
"¿Cuántos clientes tenemos?" "¿Cuál es el precio medio?" "¿Cuánto hemos vendido en total?" Ninguna de estas preguntas se responde mirando fila por fila — se responden con funciones de agregación: cinco funciones muy cortas que resumen una columna entera en un solo número.
Las cinco funciones de agregación
Se llaman "de agregación" porque toman muchas filas y las convierten en un
único valor de resumen. Las cinco funcionan igual: van entre paréntesis
después de SELECT, con el nombre de la columna
dentro.
Cuenta filas. COUNT(*) cuenta todas las filas; COUNT(columna) cuenta solo las que no son NULL en esa columna.
Suma todos los valores de una columna numérica.
Calcula la media (promedio) de una columna numérica.
El valor más pequeño de la columna.
El valor más grande de la columna.
Fíjate en ROUND(AVG(precio), 2): puedes anidar
funciones dentro de otras. Primero se calcula el AVG, y el resultado se
redondea a 2 decimales con ROUND. Es habitual encadenar así varias funciones.
Mezclar una función de agregación con una columna normal en el mismo SELECT
sin agrupar: SELECT nombre, COUNT(*) FROM productos;
Muchos motores dan error aquí, y los que no, devuelven un resultado sin mucho
sentido (un nombre "cualquiera" emparejado con el conteo total). Si mezclas una
columna normal con una función de agregación, casi siempre necesitas
GROUP BY — el protagonista del próximo módulo.
Ponlo a prueba
Comprueba lo que has aprendido
1. ¿Qué diferencia hay entre COUNT(*) y COUNT(email)?
2. ¿Qué función usarías para saber el precio del producto más caro?
3. ¿Qué suele pasar si mezclas una columna normal con una función de agregación sin agrupar?