Lección 10 de SQL: Consultas con agregados (Parte 1)

Además de las expresiones simples que presentamos en la última lección, SQL también admite el uso de expresiones (o funciones) agregadas que permiten resumir información sobre un grupo de filas de datos. Con la base de datos Pixar que ha estado utilizando, las funciones agregadas se pueden utilizar para responder preguntas como ¿Cuántas películas ha producido Pixar? o ¿Cuál es la película de Pixar con mayor recaudación cada año?.

  • Consulta de selección con funciones agregadas sobre todas las filas
SELECT AGG_FUNC(column_or_expression) AS aggregate_description, …
FROM mytable
WHERE constraint_expression;

Sin una agrupación específica, cada función de agregación se ejecutará en todo el conjunto de filas de resultados y devolverá un único valor. Y, al igual que las expresiones normales, darle un alias a las funciones de agregación garantiza que los resultados sean más fáciles de leer y procesar.

Funciones agregadas comunes

A continuación se muestran algunas funciones de agregación comunes que utilizaremos en nuestros ejemplos:

Función Descripción
COUNT(*) , COUNT(columna) Función común que se utiliza para contar la cantidad de filas del grupo si no se especifica ningún nombre de columna. De lo contrario, cuenta la cantidad de filas del grupo con valores distintos de NULL en la columna especificada.
MIN(columna) Encuentra el valor numérico más pequeño en la columna especificada para todas las filas del grupo.
MAX(columna) Encuentra el valor numérico más grande en la columna especificada para todas las filas del grupo.
AVG(columna) Encuentra el valor numérico promedio en la columna especificada para todas las filas del grupo.
SUM(columna) Encuentra la suma de todos los valores numéricos en la columna especificada para las filas del grupo.

Documentación: MySQL, Postgres, SQLite, Microsoft SQL Server

Funciones agregadas agrupadas

Además de agregar en todas las filas, puede aplicar las funciones de agregación a grupos individuales de datos dentro de ese grupo (es decir, ventas de taquilla de comedias frente a películas de acción). Esto generaría tantos resultados como grupos únicos definidos por la cláusula GROUP BY.

  • Consulta de selección con funciones agregadas sobre grupos
SELECT AGG_FUNC(column_or_expression) AS aggregate_description, …
FROM mytable
WHERE constraint_expression
GROUP BY column;

La cláusula GROUP BY funciona agrupando filas que tienen el mismo valor en la columna especificada.

Ejercicio

Para este ejercicio, trabajaremos con nuestra tabla Empleados. Observe cómo las filas de esta tabla tienen datos compartidos, lo que nos dará la oportunidad de usar funciones agregadas para resumir algunas métricas de alto nivel sobre los equipos. Inténtelo.


  1. Encuentra el tiempo más largo que un empleado ha estado en el estudio.
  2. Para cada función, encuentre el número promedio de años empleados por los empleados en esa función.
  3. Encuentra el número total de años de trabajo de los empleados en cada edificio.