Consultas SQL enfocadas en análisis de datos, inteligencia de negocios y exploración de conjuntos de datos. Todas incluyen técnicas como agregaciones, joins, subconsultas y funciones analíticas.
Tecnologías: MySQL - SQL Server - PostgreSQL
SELECT region, SUM(sales) AS total_sales, AVG(sales) AS average_sales FROM sales WHERE date >= '2025-01-01' GROUP BY region ORDER BY total_sales DESC;
SELECT TOP 5 product, SUM(quantity) AS total_sold FROM sales WHERE date BETWEEN '2025-07-01' AND '2025-09-30' GROUP BY product ORDER BY total_sold DESC;
SELECT c.country, SUM(o.total_amount) AS sales_by_country FROM customers c JOIN orders o ON o.customer_id = c.customer_id GROUP BY c.country ORDER BY sales_by_country DESC;
SELECT p.product_name, SUM(oi.quantity) AS units_sold FROM order_items oi JOIN products p ON p.product_id = oi.product_id GROUP BY p.product_name ORDER BY units_sold DESC;
SELECT DATE_FORMAT(order_date, '%Y-%m') AS month, AVG(total_amount) AS average_ticket FROM orders GROUP BY DATE_FORMAT(order_date, '%Y-%m') ORDER BY month DESC;
SELECT customer_id, SUM(total_amount) AS total_spent, RANK() OVER (ORDER BY SUM(total_amount) DESC) AS ranking FROM orders GROUP BY customer_id;
SELECT p.category, SUM(oi.quantity * oi.item_price) AS revenue FROM order_items oi JOIN products p ON p.product_id = oi.product_id GROUP BY p.category ORDER BY revenue DESC;
SELECT order_date, total_amount, AVG(total_amount) OVER ( ORDER BY order_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW ) AS moving_avg_7d FROM orders;
SELECT c.customer_id, c.customer_name FROM customers c LEFT JOIN orders o ON o.customer_id = c.customer_id WHERE o.order_id IS NULL;
SELECT product_name, price, CASE WHEN price >= 100 THEN 'High' WHEN price >= 50 THEN 'Medium' ELSE 'Low' END AS price_category FROM products;