Funciones de agregación básicas
En este paso, exploraremos las funciones de agregación fundamentales en MySQL. Estas funciones realizan cálculos en múltiples filas y devuelven un solo valor, lo que las hace esenciales para el análisis de datos.
Primero, conectémonos a MySQL y seleccionemos nuestra base de datos:
sudo mysql -u root
Una vez conectados:
USE sales_db;
Función COUNT
Comencemos con la función COUNT, que cuenta el número de filas en un conjunto de resultados:
-- Contar el número total de ventas
SELECT COUNT(*) as total_sales
FROM sales;
Deberías ver una salida como esta:
+--------------+
| total_sales |
+--------------+
| 12 |
+--------------+
COUNT se puede utilizar de diferentes maneras:
-- Contar los productos únicos vendidos
SELECT COUNT(DISTINCT product_name) as unique_products
FROM sales;
-- Contar las ventas por categoría
SELECT category, COUNT(*) as sales_count
FROM sales
GROUP BY category;
Explicación:
COUNT(*)
cuenta todas las filas de la tabla, incluyendo los valores NULL
COUNT(DISTINCT column)
cuenta solo los valores únicos en la columna especificada
- Cuando se utiliza con GROUP BY, COUNT calcula los totales para cada grupo por separado
- La palabra clave
as
crea alias para las columnas de resultados, lo que hace que la salida sea más legible
Función SUM
La función SUM calcula el total de columnas numéricas:
-- Calcular la cantidad total vendida
SELECT SUM(quantity) as total_items_sold
FROM sales;
-- Calcular el ingreso total
SELECT
ROUND(SUM(quantity * unit_price), 2) as total_revenue
FROM sales;
Explicación:
- SUM solo se puede utilizar con columnas numéricas
- Los cálculos como
quantity * unit_price
se realizan antes de la agregación
- ROUND(x, 2) redondea los números a 2 decimales
- Para los cálculos de ingresos, la multiplicación se realiza antes de la suma para mantener la precisión
Función AVG
La función AVG calcula el valor promedio:
-- Calcular el precio unitario promedio
SELECT
ROUND(AVG(unit_price), 2) as avg_price
FROM sales;
-- Calcular la cantidad promedio por venta
SELECT
ROUND(AVG(quantity), 1) as avg_quantity
FROM sales;
Explicación:
- AVG ignora automáticamente los valores NULL en sus cálculos
- El segundo parámetro en ROUND especifica el número de decimales
- Los resultados se convierten automáticamente al tipo DECIMAL para mayor precisión
- AVG se utiliza comúnmente para encontrar valores típicos en tus datos
Funciones MAX y MIN
Estas funciones encuentran los valores más altos y más bajos:
-- Encontrar el rango de precios de los productos
SELECT
MIN(unit_price) as lowest_price,
MAX(unit_price) as highest_price
FROM sales;
-- Encontrar las fechas de la primera y última venta
SELECT
MIN(sale_date) as first_sale,
MAX(sale_date) as last_sale
FROM sales;
Explicación:
- MIN/MAX funcionan con números, cadenas y fechas
- Para fechas, MIN encuentra la fecha más temprana mientras que MAX encuentra la más reciente
- Se pueden combinar múltiples funciones de agregación en una sola declaración SELECT
- Al igual que otras funciones de agregación, ignoran automáticamente los valores NULL
- Estas funciones son útiles para encontrar rangos y límites de valores en tus datos