-
Notifications
You must be signed in to change notification settings - Fork 0
Queries SQL
Mindset & Code edited this page May 26, 2026
·
3 revisions
Las 5 queries principales del archivo sales_analysis.sql cubren los análisis más comunes en un entorno de SalesOps / RevOps.
SELECT
region,
SUM(revenue) AS total_revenue,
SUM(cost) AS total_cost,
SUM(revenue - cost) AS total_profit,
ROUND(
(SUM(revenue - cost) / SUM(revenue)) * 100, 2
) AS profit_margin_pct
FROM sales
GROUP BY region
ORDER BY total_revenue DESC;Insight: identifica qué regiones generan más margen real, no solo más volumen.
SELECT
salesperson,
COUNT(*) AS deals_closed,
SUM(revenue) AS total_revenue,
AVG(revenue) AS avg_deal_size,
ROUND(AVG(profit_margin), 2) AS avg_margin_pct
FROM sales
GROUP BY salesperson
ORDER BY total_revenue DESC
LIMIT 10;Insight: separa volumen de deals vs tamaño de deal — un vendedor puede cerrar muchos deals pequeños vs pocos deals grandes.
SELECT
strftime('%Y-%m', sale_date) AS month,
COUNT(*) AS deals,
SUM(revenue) AS revenue,
SUM(revenue - cost) AS profit
FROM sales
GROUP BY strftime('%Y-%m', sale_date)
ORDER BY month;Para PostgreSQL: reemplazar
strftime('%Y-%m', sale_date)porTO_CHAR(sale_date, 'YYYY-MM')
SELECT
product,
SUM(revenue) AS total_revenue,
ROUND(AVG(profit_margin), 2) AS avg_margin_pct,
COUNT(*) AS units_sold
FROM sales
GROUP BY product
HAVING AVG(profit_margin) < 20 -- umbral: 20% de margen
ORDER BY avg_margin_pct ASC;Acción: productos con margen < 20% requieren revisión de precios o reducción de costos.
SELECT
CASE
WHEN strftime('%m', sale_date) IN ('01','02','03') THEN 'Q1'
WHEN strftime('%m', sale_date) IN ('04','05','06') THEN 'Q2'
WHEN strftime('%m', sale_date) IN ('07','08','09') THEN 'Q3'
ELSE 'Q4'
END AS quarter,
SUM(revenue) AS total_revenue,
COUNT(*) AS total_deals
FROM sales
GROUP BY quarter
ORDER BY quarter;