-- Crear una base de datos y una tabla para los ejemplos
CREATE DATABASE Tienda;
CREATE TABLE Ventas (
ID INT PRIMARY KEY,
Producto VARCHAR(50),
Cantidad INT,
Precio DECIMAL(10, 2),
Fecha DATE
);
-- Insertar datos en la tabla Ventas
INSERT INTO Ventas (ID, Producto, Cantidad, Precio, Fecha)
VALUES
(1, 'Laptop', 1, 1000.00, '2023-01-15'),
(2, 'Teléfono', 2, 500.00, '2023-01-16'),
(3, 'Camiseta', 5, 20.00, '2023-01-17'),
(4, 'Pantalón', 3, 30.00, '2023-01-18'),
(5, 'Televisor', 1, 700.00, '2023-01-19'),
(6, 'Laptop', 2, 1000.00, '2023-01-20'),
(7, 'Camiseta', 4, 20.00, '2023-01-21');
-- Uso de funciones agregadas
-- Contar el número de registros
SELECT COUNT(*) AS TotalVentas FROM Ventas;
-- Sumar la cantidad total de productos vendidos
SELECT SUM(Cantidad) AS TotalProductosVendidos FROM Ventas;
-- Calcular el promedio del precio de los productos vendidos
SELECT AVG(Precio) AS PrecioPromedio FROM Ventas;
-- Encontrar el precio mínimo de los productos vendidos
SELECT MIN(Precio) AS PrecioMinimo FROM Ventas;
-- Encontrar el precio máximo de los productos vendidos
SELECT MAX(Precio) AS PrecioMaximo FROM Ventas;
-- Agrupación de datos con GROUP BY
-- Sumar la cantidad vendida de cada producto
SELECT Producto, SUM(Cantidad) AS TotalVendido
FROM Ventas
GROUP BY Producto;
-- Filtrado de grupos con HAVING
-- Mostrar los productos que han vendido más de 5 unidades en total
SELECT Producto, SUM(Cantidad) AS TotalVendido
FROM Ventas
GROUP BY Producto
HAVING SUM(Cantidad) > 5;
COUNT, SUM, AVG, MIN, MAX:
COUNT(*) AS TotalVentas
cuenta el número total de registros en la tabla «Ventas».SUM(Cantidad) AS TotalProductosVendidos
suma la cantidad total de productos vendidos.AVG(Precio) AS PrecioPromedio
calcula el precio promedio de los productos vendidos.MIN(Precio) AS PrecioMinimo
encuentra el precio mínimo de los productos vendidos.MAX(Precio) AS PrecioMaximo
encuentra el precio máximo de los productos vendidos.Agrupación de Datos con GROUP BY:
SELECT Producto, SUM(Cantidad) AS TotalVendido FROM Ventas GROUP BY Producto;
agrupa los registros por el valor de la columna «Producto» y calcula la suma de la columna «Cantidad» para cada grupo. Esto permite ver la cantidad total vendida de cada producto.Filtrado de Grupos con HAVING:
SELECT Producto, SUM(Cantidad) AS TotalVendido FROM Ventas GROUP BY Producto HAVING SUM(Cantidad) > 5;
agrupa los registros por el valor de la columna «Producto», calcula la suma de la columna «Cantidad» para cada grupo y filtra los grupos para mostrar solo aquellos donde la suma es mayor que 5. Esto permite ver solo los productos que han vendido más de 5 unidades en total.