Objetivo
Al finalizar esta lección podrás:
- Usar
COUNT()para contar registros. - Usar
SUM()para sumar valores numéricos. - Usar
AVG()para calcular promedios. - Combinar agregación con
WHEREpara obtener resúmenes filtrados.
En esta lección aprenderás funciones agregadas básicas para obtener resúmenes de datos: cuántos hay (COUNT), cuánto suman (SUM) y cuál es el promedio (AVG).
Al finalizar esta lección podrás:
COUNT() para contar registros.SUM() para sumar valores numéricos.AVG() para calcular promedios.WHERE para obtener resúmenes filtrados.Las funciones agregadas no devuelven una lista de filas “normales”, sino un resultado resumido.
Cuenta cuántas filas cumplen una condición.
SELECT COUNT(*) AS total
FROM productos;
Suma una columna numérica (por ejemplo, stock).
SELECT SUM(stock) AS stock_total
FROM productos;
Calcula el promedio de una columna numérica (por ejemplo, precio).
SELECT AVG(precio) AS precio_promedio
FROM productos;
Consejo: siempre usa alias (AS) para que el resultado sea fácil de leer.
SELECT COUNT(*) AS total_productos
FROM productos;
SELECT COUNT(*) AS total_clientes
FROM clientes;
SELECT SUM(stock) AS stock_total
FROM productos;
SELECT AVG(precio) AS precio_promedio
FROM productos;
SELECT
COUNT(*) AS total_papeleria,
SUM(stock) AS stock_papeleria,
AVG(precio) AS precio_promedio_papeleria
FROM productos
WHERE categoria = 'Papelería';
Esta consulta muestra la idea clave: agregación + WHERE.
Intenta resolver antes de ver la solución.
Cuenta cuántos productos tienen stock > 0.
SELECT COUNT(*) AS productos_con_stock
FROM productos
WHERE stock > 0;
Explicación: WHERE filtra filas y COUNT cuenta las que quedan.
Cuenta cuántos clientes son de 'Quito'.
SELECT COUNT(*) AS clientes_quito
FROM clientes
WHERE ciudad = 'Quito';
Explicación: se cuentan solo los registros de esa ciudad.
Calcula el stock total de la categoría 'Papelería'.
SELECT SUM(stock) AS stock_total_papeleria
FROM productos
WHERE categoria = 'Papelería';
Explicación: suma stock solo de filas que cumplen la categoría.
Calcula el precio promedio de los productos cuyo precio esté entre 1 y 10.
SELECT AVG(precio) AS precio_promedio_1a10
FROM productos
WHERE precio BETWEEN 1 AND 10;
Explicación: BETWEEN filtra el rango, AVG promedia los precios filtrados.
Obtén en una sola consulta:
cantidad de productos, stock total y precio promedio
para la categoría 'Accesorio'.
SELECT
COUNT(*) AS total_accesorios,
SUM(stock) AS stock_total_accesorios,
AVG(precio) AS precio_promedio_accesorios
FROM productos
WHERE categoria = 'Accesorio';
Explicación: combinas varias agregaciones con un solo filtro.
Calcula el stock total de productos cuyo nombre contenga 'Cuaderno'.
SELECT SUM(stock) AS stock_cuadernos
FROM productos
WHERE nombre LIKE '%Cuaderno%';
Explicación: LIKE filtra por patrón de texto y SUM resume el stock.
AS para nombres claros.Nota: el siguiente gran paso para agregación por categorías es GROUP BY. Aquí solo usamos agregación global (con o sin filtro).
Practica con ejercicios reales y valida tu progreso con la evaluación.