3.
SQL AVG() Función
La función SQL AVG()
El AVG() La función devuelve el valor promedio de una columna numérica.
Encuentra el precio medio de todos los productos:
SELECT AVG(Price)
FROM Products;
Sintaxis
SELECT AVG(_column_name_) FROM _table_name_ WHERE _condition_;
Base de datos de demostración
A continuación se muestra una selección del Productos tabla utilizada en los ejemplos:
ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 18
bags
2 Chang 1 1 24 - 12 oz 19
bottles
3 Aniseed Syrup 1 2 12 - 550 ml 10
bottles
4 Chef Anton's Cajun 2 2 48 - 6 oz jars 22
Seasoning
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35
Agregar una cláusula WHERE
Puedes agregar un WHERE cláusula para especificar condiciones:
Ejemplo
Devuelve el precio medio de los productos de la categoría 1:
SELECT AVG(Price)
FROM Products
WHERE CategoryID = 1;
Utilice un alias
Dale un nombre a la columna AVG usando el AS palabra clave.
Ejemplo
Nombra la columna "precio promedio":
SELECT AVG(Price) AS [average price]
FROM Products;
Más alto que el promedio
Para listar todos los registros con un precio superior al promedio, podemos utilizar
el AVG() función en una subconsulta:
Ejemplo
Devuelve todos los productos con un precio superior al precio medio:
SELECT * FROM Products
WHERE price > (SELECT AVG(price) FROM Products);
Utilice AVG() con GROUP BY
Aquí usamos el AVG() función y la GROUP BY cláusula, para devolver el precio medio para
cada categoría de la tabla Productos:
Ejemplo
SELECT AVG(Price) AS AveragePrice, CategoryID
FROM Products
GROUP BY CategoryID;
Ejemplo de todo
CREATE TABLE productos_tecnologicos (
id SERIAL PRIMARY KEY,
nombre VARCHAR(100),
categoria VARCHAR(50),
marca VARCHAR(50),
modelo VARCHAR(50),
precio DECIMAL(10, 2),
stock INT,
fecha_lanzamiento DATE,
calificacion DECIMAL(2, 1),
descripcion TEXT
);
INSERT INTO productos_tecnologicos (nombre, categoria, marca, modelo, precio, stock,
fecha_lanzamiento, calificacion, descripcion)
VALUES
('Laptop X', 'Computadora', 'Marca A', 'Modelo 1', 999.99, 50, '2023-01-15', 4.5, 'Laptop de alto
rendimiento.'),
('Smartphone Y', 'Teléfono', 'Marca B', 'Modelo 2', 699.99, 100, '2023-02-20', 4.7, 'Teléfono con
cámara avanzada.'),
('Tablet Z', 'Tableta', 'Marca C', 'Modelo 3', 399.99, 75, '2023-03-10', 4.3, 'Tableta ligera y
portátil.'),
('Smartwatch A', 'Reloj', 'Marca D', 'Modelo 4', 199.99, 150, '2023-04-05', 4.6, 'Reloj inteligente
con GPS.'),
('Auriculares B', 'Audio', 'Marca E', 'Modelo 5', 149.99, 200, '2023-05-12', 4.2, 'Auriculares con
cancelación de ruido.'),
('Laptop Y', 'Computadora', 'Marca A', 'Modelo 6', 1099.99, 30, '2023-06-01', 4.8, 'Laptop para
gamers.'),
('Smartphone Z', 'Teléfono', 'Marca B', 'Modelo 7', 799.99, 80, '2023-07-15', 4.5, 'Teléfono con
pantalla AMOLED.'),
('Tablet A', 'Tableta', 'Marca C', 'Modelo 8', 499.99, 60, '2023-08-20', 4.4, 'Tableta con stylus
incluido.'),
('Smartwatch B', 'Reloj', 'Marca D', 'Modelo 9', 249.99, 120, '2023-09-10', 4.7, 'Reloj con monitor
de salud.'),
('Auriculares C', 'Audio', 'Marca E', 'Modelo 10', 199.99, 180, '2023-10-05', 4.3, 'Auriculares
inalámbricos.'),
('Laptop Z', 'Computadora', 'Marca A', 'Modelo 11', 899.99, 40, '2023-11-01', 4.6, 'Laptop
ultradelgada.'),
('Smartphone A', 'Teléfono', 'Marca B', 'Modelo 12', 599.99, 90, '2023-12-15', 4.5, 'Teléfono con
carga rápida.'),
('Tablet B', 'Tableta', 'Marca C', 'Modelo 13', 349.99, 70, '2023-01-20', 4.2, 'Tableta con buena
batería.'),
('Smartwatch C', 'Reloj', 'Marca D', 'Modelo 14', 299.99, 110, '2023-02-25', 4.8, 'Reloj con
seguimiento de actividad.'),
('Auriculares D', 'Audio', 'Marca E', 'Modelo 15', 179.99, 160, '2023-03-30', 4.4, 'Auriculares con
sonido envolvente.'),
('Laptop W', 'Computadora', 'Marca A', 'Modelo 16', 1199.99, 20, '2023-04-15', 4.9, 'Laptop para
diseño gráfico.'),
('Smartphone B', 'Teléfono', 'Marca B', 'Modelo 17', 699.99, 85, '2023-05-10', 4.6, 'Teléfono con
gran autonomía.'),
('Tablet C', 'Tableta', 'Marca C', 'Modelo 18', 429.99, 65, '2023-06-05', 4.3, 'Tableta con buena
resolución.'),
('Smartwatch D', 'Reloj', 'Marca D', 'Modelo 19', 249.99, 140, '2023-07-01', 4.5, 'Reloj con
notificaciones.'),
('Auriculares E', 'Audio', 'Marca E', 'Modelo 20', 159.99, 190, '2023-08-15', 4.2, 'Auriculares con
micrófono.');
SELECT * FROM productos_tecnologicos;
-- Devuelve el valor promedio de una columna especifica que sea numerica
SELECT AVG(precio) AS " Valor Promedio"
FROM productos_tecnologicos;
--Clausula where
SELECT AVG(precio) AS "Valor promedio de 1 al 5"
FROM productos_tecnologicos
WHERE id BETWEEN 1 AND 5;
-- Todos los que estan mas arriba del promedio
SELECT * FROM productos_tecnologicos
WHERE precio > (SELECT AVG(precio) FROM productos_tecnologicos);
-- Precio por categoria
SELECT categoria, AVG(precio) AS AveragePrecio
FROM productos_tecnologicos
GROUP BY categoria;
--Precio id
SELECT id, AVG(precio) AS AveragePrecio
FROM productos_tecnologicos
GROUP BY id;07:01