- ¿Qué son las funciones agregadas?
- COUNT: contar filas
- SUM: sumar valores
- AVG: calcular promedios
- MAX y MIN: valores extremos
Hasta ahora hemos aprendido a consultar y filtrar datos, pero a veces no queremos ver cada fila por separado — sino entender los datos en conjunto.
Por ejemplo: ¿Cuántos usuarios hay? ¿Cuál es el tiempo promedio que pasan en un curso? ¿Cuál fue el valor más alto o más bajo?
Para eso existen las funciones agregadas, un conjunto de herramientas en SQL que permiten calcular resultados a partir de muchas filas.
¿Qué son las funciones agregadas?
Por ejemplo, si tienes una lista con 100 usuarios, estas funciones pueden:
- Contarlos (
COUNT) - Sumar algo sobre ellos (
SUM) - Calcular un promedio (
AVG) - Buscar el mayor o el menor valor (
MAX,MIN)
Todas siguen el mismo formato:
SELECT FUNCIÓN(campo)
FROM tabla;
COUNT: contar filas
Imagina que queremos saber cuántos usuarios hay registrados en la tabla users.
SELECT COUNT(*) FROM users;
| count |
|---|
| 99 |
🧩 COUNT(*) cuenta todas las filas, sin importar si hay datos vacíos (NULL) o no. En este caso, sabemos que hay 99 usuarios en total.
Pero podemos cambiar el argumento de la función. Si escribimos el nombre de un campo en lugar del *, entonces contará solo las filas donde ese campo tenga un valor.
SELECT COUNT(email_confirmed) FROM users;
Ver en DB Fiddle
| count |
|---|
| 0 |
Ver en DB Fiddle
💡 Aquí devuelve 0, porque el campo email_confirmed está vacío en todos los registros.
También puedes usar condiciones para contar solo un grupo específico. Por ejemplo, cuántas mujeres hay entre todos los usuarios:
SELECT COUNT(*) FROM users WHERE gender = 'female';
| count |
|---|
| 56 |
Ver en DB Fiddle
Ahora el resultado representa un subconjunto: solo las filas que cumplen la condición del WHERE.
SUM: sumar valores
A veces no basta con contar: queremos saber el total acumulado. Por ejemplo, ¿cuántos minutos en total han pasado los estudiantes dentro de los cursos?
SELECT SUM(spent_minutes) FROM course_reviews;
| sum |
|---|
| 2456 |
Ver en DB Fiddle
SUM() recorre todas las filas y suma los valores de la columna spent_minutes. Así podemos saber que los estudiantes pasaron 2456 minutos en total en los cursos.
SUM() solo funciona con números. Si intentas usar texto o fechas, SQL no sabrá cómo sumarlas y lanzará un error.
AVG: calcular promedios
El promedio se obtiene al sumar todos los valores y dividirlos entre la cantidad de registros. SQL lo hace por ti con AVG() (del inglés average).
Por ejemplo, ¿cuánto tiempo pasa en promedio el usuario con id = 9en los cursos?
SELECT AVG(spent_minutes)
FROM course_reviews
WHERE user_id = 9;
| avg |
|---|
| 25.6666666666666667 |
Ver en DB Fiddle
SQL sumó todos los minutos del usuario 9 y los dividió entre la cantidad de cursos que tomó. El resultado tiene decimales porque el promedio no siempre es un número entero.
MAX y MIN: valores extremos
Estas funciones devuelven el valor más alto (MAX) o el más bajo (MIN) de una columna. Por ejemplo, el curso más largo y el más corto según spent_minutes:
SELECT MAX(spent_minutes) FROM course_reviews;
| max |
|---|
| 100 |
Ver en DB Fiddle
Y ahora encontremos el tiempo mínimo:
SELECT MIN(spent_minutes) FROM course_reviews;
| min |
|---|
| 1 |
Ver en DB Fiddle
💡 MAX y MIN también funcionan con texto y fechas:
- Con texto, devuelven la primera o la última palabra en orden alfabético.
- Con fechas, el valor más antiguo o más reciente.
SELECT MIN(username), MAX(username)
FROM users;
| min | max |
|---|---|
| Abelardo58 | Zoey24 |
Ver en DB Fiddle
Aquí MIN encontró el primer nombre alfabéticamente (Abelardo58) y MAX el último (Zoey24).
Resumen
COUNT()— cuenta filas (todas o solo las que tienen datos).SUM()— suma valores numéricos.AVG()— calcula el promedio.MAX()/MIN()— encuentran el valor máximo y mínimo (número, texto o fecha).
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.