A SQL-only analysis of a ~8,800-row CRM sales pipeline for a fictional B2B hardware company, TechVantage Solutions. Built as a business analytics training exercise: 20 queries answering deal performance, agent productivity, revenue trends, and product success questions, using only SELECT, WHERE, GROUP BY, HAVING, CASE, aggregates, and non-correlated subqueries — no joins, CTEs, or window functions.
Dataset: Maven Analytics — CRM Sales Opportunities (4 tables: sales_pipeline, accounts, products, sales_teams)
| Path | Description |
|---|---|
sql/queries.sql |
All 20 queries, schema/table creation, and data load script |
docs/business_insights_report.docx |
Written summary of 5 key business insights, in plain English |
docs/crm_query_outputs.docx |
Exported results/screenshots for each query |
| Metric | Value |
|---|---|
| Total opportunities | 8,800 |
| Won deals | 4,238 (48.2%) |
| Lost deals | 2,473 (28.1%) |
| Active deals | 2,089 (23.7%) |
| Total revenue (Won) | $10,005,534 |
| Average deal value (Won) | $2,360.91 |
| Avg days to close | ~52 days |
| Top agent by wins | Darcel Schlecht — 349 wins |
| Top product by revenue | GTXPro — $3,510,578 |
| Largest client sector | Retail — 17 accounts |
- One agent dominates the team — Darcel Schlecht leads all 30 agents with 349 Won deals and $1.15M in revenue, more than double the next-closest agent.
- GTXPro is the revenue engine — it drives ~35% of total Won revenue, far ahead of the second-place product.
- A 48% win rate, but a 28% loss rate — nearly 1 in 3 closed deals is lost, representing an estimated $580K in recoverable revenue if 10% of losses convert.
- ~52-day average close time — useful as a benchmark for flagging stalled deals; a data quality anomaly was also found (all closures grouped under one year).
- Retail, Medical, and Technology lead client sectors — the only three sectors with more than 10 accounts each, alongside a data quality note (
'technolgy'typo in the sector field).
Full detail and business recommendations are in docs/business_insights_report.docx.
MySQL 9.7 · Standard SQL (SELECT, GROUP BY, HAVING, CASE, subqueries, date/string functions)
For educational use only. Dataset source: Maven Analytics Data Playground.