Funciones Agregadas y Agrupación de Datos

Código de ejemplo

				
					-- 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;

				
			

Explicación

  1. 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.
  2. 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.
  3. 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.