Funciones de Agregacion
Las funciones de agregación combinan los valores que tiene el campo de tabla especificado.
Estas funciones son afectadas por la cláusula WHERE()
,
por cuanto esta implementa el filtrado de registros
y por tanto afecta qué valores quedan en el campo.
COUNT()
COUNT()
cuenta todos los valores disponibles del campo elegido:
COUNT(FirstName) |
---|
10 |
-- Conteo de empleados
SELECT COUNT(FirstName) AS cantidad_empleados FROM Employees;
Resultado:
cantidad_empleados |
---|
10 |
SUM()
SUM()
suma todos los valores disponibles del campo elegido:
SUM(Price) |
---|
2222.71 |
AVG()
AVG()
calcula la media aritmética (average) del campo seleccionado.
AVG(Price) |
---|
28.8663636363636 |
MIN()
La función MIN()
elige el registro cuyo valor de campo sea el menor.
ProductID | ProductName | MIN(Price) |
---|---|---|
33 | Geitost | 2.5 |
Para prevenir lecturas erróneas por valores no configurados se filtran los valores nulos:
-- Minimo precio, con nombre e ID de producto
SELECT ProductID, ProductName, MIN(Price) FROM Products
-- descarte de campos nulos
WHERE ProductName IS NOT NULL AND Price IS NOT NULL;
MAX()
La función MAX()
elige el registro cuyo valor de campo sea el mayor.
-- Maximo precio, con nombre e ID de producto
SELECT ProductID, ProductName, MAX(Price) FROM Products
-- descarte de campos nulos
WHERE ProductName IS NOT NULL AND Price IS NOT NULL;
Resultado:
ProductID | ProductName | MAX(Price) |
---|---|---|
38 | Côte de Blaye | 263.5 |
Funciones numéricas
Con el fin de manipular valores numéricos se dispone de las funciones ROUND()
, FLOOR()
y CEIL()
:
FLOOR()
elimina los decimales dejando el valor entero inmediatamente inferior;CEIL()
empuja hacia el valor entero inmediatamente superior;ROUND()
redondea al número de decimales indicado. Por defecto redonea al valor entero más cercano.
Ejemplo:
SELECT AVG(Price) AS media,
FLOOR(AVG(Price)) AS piso,
ROUND(AVG(Price), 2) AS redondeo2,
ROUND(AVG(Price)) AS redondeo,
CEIL(AVG(Price)) AS techo
FROM Products;
media | piso | redondeo2 | redondeo | techo |
---|---|---|---|---|
28.8663636363636 | 28.0 | 28.87 | 29.0 | 29.0 |
No son de agregación
Estas funciones no son de agregación, porque no combinan ni leen múltiples valores de campo sino que manipula un único valor de entrada