Agrupación de Datos en SQL: GROUP BY, HAVING y CASE para Análisis Avanzado
Clase 26 de 36 • Curso de Bases de Datos con SQL
Contenido del curso
Fundamentos de Bases de Datos
Introducción a las bases de datos relacionales
Manipulación de Datos
Manipulación Avanzada de Datos
- 20
🛠️ Guía de instalación de MySQL y MySQL Workbench
01:23 min - 21

¿Qué es la cláusula WHERE de SQL?
07:58 min - 22

Filtrar y Ordenar Datos en SQL (LIKE)
06:04 min - 23

Cláusulas de Comparación Textual en SQL (AND, NULL, IN, NOT)
06:20 min - 24

Funciones de Aritmética Básica en SQL (COUNT)
09:05 min - 25

Funciones de Aritmética Básica en SQL (MIN, MAX)
04:45 min
Agrupación de Datos
Transformación de Datos
Procedimientos Almacenados
Administración de Base de Datos
Análisis de Datos Avanzados
¿Cómo manejar grandes volúmenes de datos en bases de datos multirrelacionales?
El manejo eficiente de los datos es esencial cuando se trabaja con bases de datos complejas que contienen múltiples relaciones. Este proceso, aunque desafiante, se puede optimizar mediante el uso de herramientas y conceptos avanzados como el GROUP BY y el HAVING COUNT. Con estas técnicas, podremos agrupar, filtrar y clasificar los datos con facilidad. Vamos a explorar cómo aplicar estos conceptos y cuál es su efectividad a través de ejemplos prácticos.
¿Qué es el GROUP BY y cómo aplicarlo?
GROUP BY es fundamental cuando necesitamos contar registros únicos en una base de datos. Supongamos que tienes una tabla de estudiantes, algunos de los cuales están matriculados en varios cursos. Si solamente quieres saber cuántos estudiantes únicos hay sin contar la duplicación de cursos, GROUP BY te permite consultar la cantidad exacta.
Para lograrlo, ejecuta un conteo sobre el ID del estudiante, agrupando así la información:
SELECT student_id, COUNT(*)
FROM students_courses
GROUP BY student_id;
Esto te mostrará cada estudiante solo una vez junto con la cantidad total de cursos en los que están matriculados.
¿Cómo utilizar el HAVING COUNT para filtrar agrupaciones?
HAVING COUNTes una herramienta poderosa para aplicar filtros sobre datos agrupados. Por ejemplo, si tu objetivo es obtener los cursos que tengan más de tres estudiantes, podrías implementar la siguiente consulta:
SELECT course_id, COUNT(*)
FROM students_courses
GROUP BY course_id
HAVING COUNT(*) > 3;
Este enfoque te ayuda a aplicar condiciones adicionales a tu agrupación inicial, asegurando que los resultados exhibidos correspondan exactamente a tus condiciones deseadas.
¿Cómo clasificar categorías con CASE WHEN?
El uso del CASE WHEN es crucial cuando requieres clasificar datos según reglas específicas. Al evaluar un atributo como la edad de diferentes estudiantes y clasificarlos en equipos según su rango, el siguiente código SQL es útil:
SELECT student_name,
CASE
WHEN age BETWEEN 18 AND 20 THEN 'Team A'
ELSE 'Team B'
END as team
FROM students;
Este código te permite clasificar automáticamente a los estudiantes en Team A si se encuentran dentro del rango de 18 a 20 años y en Team B si no cumplen esta condición.
¿Cómo expandir los criterios de clasificación?
Para escenarios más complejos, donde los criterios combinan atributos distintos, puedes ampliar el CASE WHEN:
SELECT student_name,
CASE
WHEN age BETWEEN 18 AND 20 THEN 'Team A'
WHEN student_name = 'María' THEN 'Team A'
ELSE 'Team C'
END as team
FROM students;
Aquí, los estudiantes llamados María también se clasificarán en Team A, mientras que todos los demás irán al Team C.
Utilizar entidades como GROUP BY, HAVING COUNT, y CASE WHEN permite manejar grandes datos con mayor precisión. Si te sientes atascado, no olvides que siempre puedes recurrir a herramientas de inteligencia artificial como Platzi Ada para obtener asistencia. ¡Mantén tus habilidades al día y acepta nuevos retos!