Puedes ejecutar cualquier consulta SQL en nuestra consola interactiva: Abrir consola SQL →
COUNT, SUM y AVG en SQL: funciones de agregación esenciales
SQL incluye funciones de agregación que permiten obtener información resumida de una tabla. Las más utilizadas son COUNT, SUM y AVG. En esta guía aprenderás cómo usarlas correctamente con ejemplos y ejercicios.
Tabla de contenidos
1. COUNT
COUNT devuelve el número de filas.
SELECT COUNT(*) FROM usuarios;
También puedes contar solo filas que cumplan una condición:
SELECT COUNT(*) FROM usuarios
WHERE edad > 18;
2. SUM
SUM calcula la suma de una columna numérica.
SELECT SUM(precio) FROM productos;
3. AVG
AVG calcula el promedio de una columna numérica.
SELECT AVG(edad) FROM usuarios;
4. Combinación con WHERE
SELECT SUM(precio) FROM productos
WHERE categoria = 'Ropa';
SELECT AVG(edad) FROM usuarios
WHERE ciudad = 'Madrid';
5. Combinación con GROUP BY
GROUP BY permite agrupar resultados antes de aplicar funciones de agregación.
SELECT ciudad, COUNT(*) FROM usuarios
GROUP BY ciudad;
SELECT categoria, SUM(precio) FROM productos
GROUP BY categoria;
6. Ejemplos prácticos
SELECT COUNT(*) FROM empleados;
SELECT SUM(salario) FROM empleados;
SELECT AVG(salario) FROM empleados;
SELECT departamento, COUNT(*) FROM empleados GROUP BY departamento;
SELECT departamento, AVG(salario) FROM empleados GROUP BY departamento;
7. Ejercicios para practicar
- Cuenta cuántos usuarios hay.
- Cuenta cuántos usuarios tienen más de 30 años.
- Suma los precios de todos los productos.
- Calcula el promedio de edad.
- Muestra cuántos usuarios hay por ciudad.
SELECT COUNT(*) FROM usuarios;
SELECT COUNT(*) FROM usuarios WHERE edad > 30;
SELECT SUM(precio) FROM productos;
SELECT AVG(edad) FROM usuarios;
SELECT ciudad, COUNT(*) FROM usuarios GROUP BY ciudad;
8. Mini‑proyecto: Estadísticas de ventas
CREATE TABLE ventas (
id INT PRIMARY KEY,
producto VARCHAR(50),
precio DECIMAL(10,2),
categoria VARCHAR(50)
);
INSERT INTO ventas VALUES (1, 'Camiseta', 19.99, 'Ropa');
INSERT INTO ventas VALUES (2, 'Pantalón', 29.99, 'Ropa');
INSERT INTO ventas VALUES (3, 'Auriculares', 49.99, 'Electrónica');
SELECT categoria, COUNT(*) AS total_productos,
SUM(precio) AS suma_precios,
AVG(precio) AS precio_promedio
FROM ventas
GROUP BY categoria;
9. Errores comunes
- Usar COUNT en columnas equivocadas.
- Confundir SUM con AVG.
- Olvidar GROUP BY cuando se agregan columnas adicionales.
- Aplicar funciones a columnas de texto.
10. Preguntas frecuentes
¿COUNT cuenta valores nulos?
COUNT(*) sí, COUNT(columna) no.
¿SUM y AVG funcionan con decimales?
Sí, funcionan perfectamente con DECIMAL y FLOAT.