De muchas filas a un solo valor
Hasta ahora cada consulta devolvía una fila por registro. Las funciones agregadas hacen lo contrario: toman un conjunto de filas y lo resumen en un único valor.
| Función | Qué calcula |
|---|---|
COUNT(*) |
número de filas |
COUNT(col) |
número de valores no nulos de col |
SUM(col) |
suma de los valores |
AVG(col) |
media (promedio) de los valores |
MIN(col) |
valor mínimo |
MAX(col) |
valor máximo |
Por ejemplo, sobre la tabla productos:
SELECT COUNT(*) FROM productos; -- ¿cuántos productos hay?
SELECT AVG(precio) FROM productos; -- precio medio de todos
SELECT MIN(precio), MAX(precio) FROM productos;
Sin GROUP BY, la función agregada actúa sobre todas las filas de la tabla
(o las que sobrevivan al WHERE) y produce una sola fila de resultado.
Alias con AS
Una columna agregada se llamaría literalmente AVG(precio). Para darle un
nombre legible se usa AS:
SELECT AVG(precio) AS precio_medio, COUNT(*) AS total
FROM productos;
COUNT(*)cuenta filas (incluidas las que tengan nulos);COUNT(col)cuenta solo las filas en las quecolno es NULL. Esa diferencia importa cuando hay datos incompletos.