Las funciones agregadas... ¡Estas cosas son auténticos magos en el mundo del análisis de datos! Te ayudan a convertir millones de filas de datos en resultados compactos y claros. Con ellas puedes contar, encontrar mínimos y máximos, sacar promedios y hacer un montón de operaciones más. Ahora vamos a ver todo esto paso a paso.
Funciones agregadas son funciones especiales de SQL que hacen operaciones sobre grupos de filas y devuelven un solo resultado. Si lo piensas, es como si recogieras todas las estadísticas sobre tu café de la mañana, por ejemplo: cuántas tazas tomaste en la semana, si le pusiste azúcar o cuántos días seguidos le pusiste nata.
Ejemplos de tareas que resuelven las funciones agregadas:
- Contar el número total de registros en una tabla.
- Encontrar los valores mínimos o máximos en una columna numérica.
- Sumar los valores de una de las columnas.
- Sacar el promedio de todos los valores de una columna.
- Seleccionar valores únicos.
¿Cómo funciona esto "por dentro"?
SQL ejecuta la función agregada después de seleccionar los datos en SELECT. Por ejemplo, cuando pones SUM() o AVG(), SQL primero recoge los datos y luego hace el cálculo solo para las filas seleccionadas.
Principales funciones agregadas en PostgreSQL
Vamos a la práctica y veamos el top 5 de nuestros héroes:
COUNT()— cuenta el número de filas.SUM()— suma los valores de una columna numérica.AVG()— calcula el valor promedio.MIN()— encuentra el valor mínimo.MAX()— encuentra el valor máximo.
Ejemplos de uso de funciones agregadas
- Contar filas usando
COUNT()
La función COUNT() te permite contar el número total de filas en una tabla o el número de valores no vacíos en una columna concreta.
Ejemplo: supón que tenemos una tabla students que guarda información sobre estudiantes:
| id | name | age | grade |
|---|---|---|---|
| 1 | Otto Art | 20 | 85 |
| 2 | Maria Chi | 22 | 90 |
| 3 | Alex Lin | 21 | 78 |
| 4 | Anna Song | 23 | NULL |
Vamos a contar el número total de estudiantes:
SELECT
COUNT(*) AS total_students
FROM students;
Resultado:
| total_students |
|---|
| 4 |
Ahora vamos a contar cuántos estudiantes tienen grade:
SELECT
COUNT(grade) AS students_with_grades
FROM students;
Resultado:
| students_with_grades |
|---|
| 3 |
¿Por qué pasa esto? Porque COUNT(column) ignora los valores NULL.
- Sumar usando
SUM()
La función SUM() se usa para sumar todos los valores de una columna numérica.
Ejemplo: vamos a ver cuántos puntos en total han conseguido nuestros estudiantes.
SELECT
SUM(grade) AS total_grades
FROM students;
Resultado:
| total_grades |
|---|
| 253 |
Nota: Si hay NULL en la columna, simplemente se ignoran al sumar.
- Promedio usando
AVG()
La función AVG() calcula el promedio de todos los registros numéricos en la columna.
Ejemplo: vamos a calcular la nota media de los estudiantes.
SELECT
AVG(grade) AS average_grade
FROM students;
Resultado:
| average_grade |
|---|
| 84.33 |
Seguro que notaste que NULL otra vez se ignoran.
- Mínimo y máximo con
MIN()yMAX()
A veces necesitas encontrar el valor más pequeño o el más grande. Para eso están MIN() y MAX().
Ejemplo: vamos a encontrar el estudiante más joven y el más mayor.
SELECT
MIN(age) AS youngest_student,
MAX(age) AS oldest_student
FROM students;
Resultado:
| youngest_student | oldest_student |
|---|---|
| 20 | 23 |
Hablaremos más sobre estas funciones en las próximas lecciones.
Conociendo NULL
Sobre NULL pronto habrá una lección aparte, pero si lo resumimos mucho, NULL es la ausencia de valor. Nada. Vacío. ¡Un cero, tal cual!
Supón que tenemos una tabla students que guarda información sobre estudiantes:
| id | name | age | grade | hobbie |
|---|---|---|---|---|
| 1 | Otto Art | 20 | 85 | |
| 2 | Maria Chi | 22 | 90 | Baile |
| 3 | Alex Lin | 21 | 78 | |
| 4 | Anna Song | 23 |
El nombre y la edad siempre están, pero la nota y el hobbie pueden faltar. Si en una celda de la tabla no hay ningún valor, se dice que contiene NULL. NULL no es un número ni una cadena, es una marca especial que significa que no hay ningún valor.
GO TO FULL VERSION