Funciones Agregadoras en MySQL: Uso y Ejemplos Prácticos

Clase 21 de 24Curso 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 y HAVING 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.