10 - Agregaciones con GROUP BY

Lección 10 del curso SQL Nivel Básico.

En la lección anterior vimos cómo unir tablas usando la sentencia JOIN en SQL.

En esta última lección del curso veremos cómo generar agrupaciones dentro de una tabla de datos. Así por ejemplo, para la base de datos que hemos venido usando, podremos agrupar los clientes por ciudades y luego determinar cuántos clientes hay en cada una, o agrupar las órdenes por estado y extraer algunas estadísticas sobre cada agrupación.

Y la manera de lograr esto es usando la sentencia GROUP BY de SQL. Así que esta lección está dividida en 5 partes donde veremos las principales maneras de usar esta herramienta:

Así que comencemos viendo en detalle el principio de funcionamiento de GROUP BY y el concepto de “funciones de agregación”, así como la sintaxis básica y algunos ejemplos de generación de agrupaciones en SQL:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Bien, como acabamos de ver la generación de agrupaciones implica la aplicación de dos pasos que siempre deben ir de la mano: la creación de los grupos (usando GROUP BY) junto con el uso de funciones de agregación que permiten realizar cálculos (como el conteo, la suma y el promedio, entre otros) sobre cada agrupación.

Además, con los ejemplos vistos entendimos la lógica de uso de GROUP BY y cómo combinarla con las sentencias SELECT vistas en una lección anterior.

Teniendo claros estos elementos ya estamos listos para ver en detalle cómo combinar la sentencia GROUP BY con las funciones de agregación:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Acabamos de ver lo sencillo que resulta usar las funciones de agregación para extraer estadísticas relevantes que nos permitirán analizar cada una de las agrupaciones.

Y al combinar estas dos sencillas herramientas (GROUP BY y las funciones de agregación) ya tenemos una herramienta muy poderosa que nos permite analizar con un mayor nivel de detalle el comportamiento de nuestros datos.

Pero hasta este punto hemos usado una única columna de la tabla de datos para generar las agrupaciones. Sin embargo, en ocasiones nos interesa combinar dos (o incluso más) variables categóricas (es decir columnas de la tabla) para analizar de forma más granular la información presente en el set de datos. Así que veamos cómo generar agrupaciones con múltiples columnas y cómo realizar el filtrado de las agrupaciones obtenidas usando la palabra clave HAVING:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

¡Perfecto! Acabamos de ver la manera de generar agrupaciones usando múltiples columnas como criterio de agrupación. Y acabamos de ver además cómo usar HAVING para realizar el filtrado de los resultados arrojados por GROUP BY.

En esencia HAVING tiene el mismo principio de funcionamiento de la sentencia WHERE, pero la primera se aplica a agrupaciones mientras que la segunda se aplica a tablas de datos.

Con esto ya tenemos los principales elementos para el procesamiento y análisis de tablas usando agrupaciones. Así que veamos cómo combinar estas herramientas con la sentencia JOIN vista anteriormente:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Como acabamos de ver, podemos realizar consultas más sofisticadas usando la sentencia JOIN (es decir combinando información proveniente de diferentes tablas de datos) y después podemos encadenar a este resultado la sentencia GROUP BY para extraer información relevante de la tabla combinada.

Y sumado a esto podemos usar herramientas como WHERE u ORDER BY para filtrar o presentar nuestra tabla de datos de la forma que queramos y que resulte más conveniente para la interpretación de la información.

Así que lo único que nos resta es ver cómo usar este principio de generación de agrupaciones sobre columnas que contienen información temporal (como fecha y hora):

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Acabamos de ver una herramienta muy pero muy útil al momento de procesar y analizar nuestros datos: la generación de Series de Tiempo haciendo uso de la sentencia GROUP BY.

En este caso podemos tomar una columna que contenga la fecha de cada registro y generar agrupaciones a partir de la misma, y luego usar funciones de agregación para cuantificar la variable numérica.

Y esta operación en últimas nos permite generar Series de Tiempo a partir de las cuales podremos buscar diferentes patrones de comportamiento en nuestros datos.

Así que con esto hemos llegado al final de este curso de SQL Nivel Básico: ¡te felicito por haber llegado hasta este punto!

En este curso hemos aprendido una gran cantidad de cosas, desde el concepto básico de lo que es una base de datos relacional, pasando por entender qué es SQL y por qué resulta importante en Ciencia de Datos y Machine Learning, hasta llegar a las consultas sofisticadas que hemos visto de forma práctica en estos dos últimos módulos del curso.

Como de costumbre, te invito a contactarme para que me compartas tus comentarios del curso y tus sugerencias para seguir mejorando el contenido de la Academia Online. Y te invito para que continúes esta línea de formación tomando el siguiente curso en esta serie: [SQL Nivel Intermedio].

¡Te envío un saludo y nos vemos en el próximo curso!

Todas las lecciones del curso SQL Nivel Básico