Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Funciones agregadas Fundamentos de SQL

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?

Son funciones especiales que procesan varias filas y devuelven un solo valor.

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?

avg

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

  1. AGGREGATE FUNCTIONS / PostgreSQL (en inglés)

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.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY