Team to Business Upgrades

Find accounts that upgraded from a team subscription to a business subscription, where the business subscription started on the same day the team subscription ended. Show the upgrade date and the MRR change.

Expected output

account_id, upgrade_date, team_mrr, business_mrr, mrr_increase. Sorted by upgrade_date, then account_id.

Row order is checked. Column names are not checked; numbers are compared to 2 decimals.

Dataset: B2B SaaS product events

A project-management SaaS: company accounts, their users, product event logs (Jan to Apr 2026) and subscription history.

accounts

One row per customer company.

account_idINTEGERprimary key
companyTEXT
industryTEXT
countryTEXT
created_atTEXTYYYY-MM-DD
users

One row per user. Every user belongs to one account.

user_idINTEGERprimary key
account_idINTEGER
signup_dateTEXTYYYY-MM-DD, same day as the user's signup event
acquisition_channelTEXTorganic, paid_search, referral or partner
countryTEXT
events

Product event log. Data ends on 2026-04-30.

event_idINTEGERprimary key, increases with event_time
user_idINTEGER
event_nameTEXTsignup, login, view_dashboard, export_report, create_project, invite_teammate, upgrade_click
event_timeTEXTYYYY-MM-DD HH:MM:SS (UTC)
subscriptions

Paid subscription periods per account. An account with no rows is on the free plan.

subscription_idINTEGERprimary key
account_idINTEGER
planTEXTteam or business
mrrREALmonthly recurring revenue in USD
started_atTEXTYYYY-MM-DD, inclusive
ended_atTEXTYYYY-MM-DD, exclusive; NULL while active. May be in the future for a scheduled cancellation.

Engine: SQLite. Dates are text (YYYY-MM-DD); use strftime(), date() and julianday() for date math.

Related problems

SQLite · runs in your browser
Ctrl/⌘ + Enter to run
Expected output preview (4 rows, order matters)
account_idupgrade_dateteam_mrrbusiness_mrrmrr_increase
52026-01-10165540375
172026-01-11135460325
152026-02-11300900600

Showing 3 of 4 rows.

Hints

Worked solution

Run at least one query to unlock it.