Skip to main content
Millennial Business Academy

SQL Project · Intermediate · 3 to 4 hours

Find SLA breaches in a telco support queue

Datetime math, CASE logic, and NULL handling on the queue data every BPO ops manager lives in.

The brief

You work in a BPO handling a telco account. The operations manager suspects the team is quietly missing service-level agreements but the daily reports only show ticket counts. You get May's raw ticket export: 600 tickets across 8 agents, with priorities P1 (4-hour SLA), P2 (24-hour), and P3 (72-hour). Some tickets are still open, and some have no CSAT score. She needs the truth before the client's quarterly business review.

Your role

You are the account's reporting analyst. Deliverable: breach rates overall, by category, and by agent, plus the open backlog.

Datetime differences in hoursCASE WHEN for per-priority SLA rulesNULL handling (open tickets, missing CSAT)GROUP BY with computed flagsPercentage aggregations

The dataset

May 2026 ticket export for one telco account

support-tickets.csv · 600 rows

Columns: ticket_id, created_at, resolved_at, agent, category, priority, csat

Download CSV

Setup

  • Import support-tickets.csv into SQLite, MySQL, or PostgreSQL as table tickets.
  • Note that resolved_at is blank for open tickets; decide early how each query should treat them.

Your tasks

Work through these in order, the way the engagement would actually run.

  1. 1Count open versus resolved tickets (resolved_at is NULL or blank means open).
  2. 2Compute resolution hours for resolved tickets from created_at to resolved_at.
  3. 3Write a CASE expression for the SLA limit per priority: P1 4 hours, P2 24, P3 72.
  4. 4Flag breaches (resolution hours above the SLA limit) and compute the overall breach rate among resolved tickets.
  5. 5Break the breach rate down by category and find the worst one.
  6. 6Rank agents by average resolution time on resolved tickets.
  7. 7Compute average CSAT per agent, excluding tickets with no score, and compare it with their speed ranking.

Work like an AI-powered analyst

The modern analyst uses AI as a thinking partner, not a shortcut that skips the learning. Try these on this project.

  • Datetime functions differ per database. Tell ChatGPT or Claude which one you use and ask for the correct hour-difference syntax before you fight it yourself.
  • Ask the AI to poke holes in your breach definition, for example how open, aging P1 tickets should be counted.
  • Have the AI turn your findings into three bullet points an ops manager could raise in the client QBR.

Expected output

  • A .sql file covering all seven tasks with comments.
  • A short findings summary: overall breach rate, the worst category, the fastest agent, and what you would fix first.

Check your numbers

Your results should match these. If they do not, that is the real learning: find out why.

  • 46 tickets are open; 554 are resolved.
  • 121 resolved tickets breached SLA, about 21.8 percent.
  • The worst category by breach rate is SIM replacement at about 27 percent.
  • The fastest agent by average resolution time is O. Pineda at about 32 hours.

Finished it? Put it in your portfolio.

This is exactly the kind of output the bootcamp builds with you live, with mentor feedback and an AI badge and certificate of completion at the end.