Las funciones de agregación calculan un único valor a partir de un conjunto de filas — COUNT, SUM, AVG, MIN, . Son esenciales para resumir datos (totales, promedios, conteos), especialmente combinadas con .
Las funciones de agregación calculan un único valor a partir de un conjunto de filas — COUNT, SUM, AVG, MIN, . Son esenciales para resumir datos (totales, promedios, conteos), especialmente combinadas con .
MAXGROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
Cada función reduce muchas filas a un valor único. SUM/AVG funcionan con números; MIN/MAX con números, fechas o texto; COUNT con cualquier cosa.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) cuenta todas las filas, pero COUNT(column) cuenta solo las filas donde esa columna no es NULL — una distinción sutil pero importante. COUNT(DISTINCT col) cuenta valores únicos.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
Sin GROUP BY, una agregación resume el resultado completo en una fila. Con GROUP BY, produce una fila de resumen por cada grupo — el uso típico y poderoso.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
Las funciones de agregación son esenciales para resumir y analizar datos — calcular totales, promedios, conteos y extremos es una necesidad constante en reportes, análisis, paneles de control y lógica de aplicaciones, por lo que comprenderlas es conocimiento SQL fundamental.
Conocer las funciones principales (COUNT, SUM, AVG, MIN, MAX) y cómo reducen conjuntos de filas a valores únicos es necesario para cualquier tarea de resumen de datos.
Un detalle importante y frecuentemente mal entendido es la distinción COUNT(*) vs COUNT(column) (COUNT(*) cuenta todas las filas, COUNT(column) cuenta solo valores no NULL — lo que puede dar resultados diferentes y sorprendentes), junto con COUNT(DISTINCT) para valores únicos.
Más poderoso aún, las agregaciones se combinan con GROUP BY para producir resúmenes por grupo (conteos/promedios por categoría) — la base de consultas analíticas.
Comprender la trampa de que no puedes mezclar agregaciones con columnas no agrupadas (un error común) también es importante.
Como resumir datos es una tarea de base de datos omnipresente (cada reporte, panel de control y consulta de análisis usa agregaciones), y como comprender las funciones, las sutilezas de COUNT y especialmente su combinación con GROUP BY es fundamental para el análisis de datos en SQL, dominar las funciones de agregación es conocimiento central y frecuentemente aplicado, esencial para trabajar con datos — tendiendo puentes entre las consultas básicas y el poder analítico y de resumen que hace que SQL sea valioso para reportes e insights.