Funciones Agregadoras en MySQL: Uso y Ejemplos Prácticos
Clase 21 de 24 • Curso de Fundamentos de Bases de Datos
Resumen
Dominar las funciones agregadoras en MySQL como COUNT
, SUM
, AVG
y utilizar sentencias avanzadas como CASE
y GROUP BY
es clave para realizar eficaces análisis de negocio a partir de información básica en una base de datos, especialmente en aplicaciones comerciales.
¿Qué son las funciones agregadoras y cuándo usarlas?
Las funciones agregadoras procesan grupos de registros y devuelven un solo valor significativo que resume los datos. Las más comunes en MySQL incluyen:
COUNT
: cuenta registros o filas.SUM
: suma valores numéricos de una columna específica.AVG
: calcula el promedio de valores numéricos.
Los usos prácticos son esenciales para entender métricas comerciales relevantes como precios promedio, cantidad total en inventario y el dinero total invertido en inventario.
¿Cómo utilizar COUNT en consultas básicas?
Para contar elementos en una tabla, utilizamos:
SELECT COUNT(*) FROM PRODUCTS;
Puedes refinar consultas con condiciones específicas mediante la cláusula WHERE
:
SELECT COUNT(*) FROM PRODUCTS WHERE PRICE < 500;
¿Qué utilidad tiene SUM y AVG en análisis comerciales?
- Total de inventario:
SELECT SUM(STOCK) FROM PRODUCTS;
- Promedio de precios:
SELECT AVG(PRICE) FROM PRODUCTS;
- Dinero invertido en stock (calcular multiplicando precio por existencias):
SELECT SUM(PRICE * STOCK) FROM PRODUCTS;
¿Cómo categorizar datos con la función CASE y GROUP BY?
Categorizar información nos permite segmentar y analizar grandes bases de datos eficazmente. Utiliza la función CASE
para crear columnas condicionales:
SELECT EMAIL,
CASE
WHEN EMAIL LIKE '%@gmail.com' THEN 'Gmail'
WHEN EMAIL LIKE '%@hotmail.com' THEN 'Hotmail'
WHEN EMAIL LIKE '%@yahoo.com' THEN 'Yahoo'
ELSE 'Otro proveedor'
END AS PROVEEDOR
FROM CLIENTS;
Una vez categorizada la información, GROUP BY
permite agrupar registros según la categoría creada:
SELECT
CASE
WHEN EMAIL LIKE '%@gmail.com' THEN 'Gmail'
WHEN EMAIL LIKE '%@hotmail.com' THEN 'Hotmail'
WHEN EMAIL LIKE '%@yahoo.com' THEN 'Yahoo'
ELSE 'Otro proveedor'
END AS PROVEEDOR,
COUNT(*) AS TOTAL_CLIENTES
FROM CLIENTS
GROUP BY PROVEEDOR;
¿Qué hace la cláusula HAVING en nuestras agrupaciones?
El HAVING
filtra los resultados de un agrupamiento según una condición específica. Ejemplo:
...GROUP BY PROVEEDOR
HAVING TOTAL_CLIENTES < 100;
Esto devuelve solo aquellos grupos de proveedores con menos de 100 clientes.
¿Cuáles son mejores prácticas para escribir consultas eficientes?
- Mantén las consultas simples, específicas y claras.
- Evita traer ruido innecesario; procesa datos relevantes en cada consulta.
- Siempre agrupa (
GROUP BY
) sobre columnas categóricas. - Usa condiciones claras y eficientes en
WHERE
yHAVING
para reducir cantidad de datos procesados.
Aplica estos conceptos para obtener insights valiosos de negocio y optimizar el rendimiento de tus bases de datos. ¿Ya estás practicando estas funciones en tus propias bases de datos? Coméntanos tus experiencias.