CodeGym /Cursos /SQL SELF /Introducción a las funciones agregadas

Introducción a las funciones agregadas

SQL SELF
Nivel 7 , Lección 0
Disponible

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:

  1. COUNT() — cuenta el número de filas.
  2. SUM() — suma los valores de una columna numérica.
  3. AVG() — calcula el valor promedio.
  4. MIN() — encuentra el valor mínimo.
  5. MAX() — encuentra el valor máximo.

Ejemplos de uso de funciones agregadas

  1. 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.

  1. 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.

  1. 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.

  1. Mínimo y máximo con MIN() y MAX()

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.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION