Signup to First Dollar
Loopwire's sales team is trying to work out how long a new company takes to start paying. Creating an account and signing a contract are two separate events with two separate dates, and the gap between them is the figure the team calls time-to-convert. A company that has signed more than one contract over its life converted on the first of them, not the latest. Companies that have never signed anything have no gap to measure and stay out of the report. Some companies sign on the day they register and others take a few weeks, so the report has to carry a gap of zero as readily as one of a fortnight.
subscriptions — one row per contract. account_id points at a row in accounts. plan is the tier the customer bought. mrr is what that contract bills every month, in dollars. start_date is the day it began. A contract that has stopped carries the day it stopped in end_date; one that is still running has nothing there, shown as — below and stored as NULL.
| id | account_id | plan | mrr | start_date | end_date |
|---|---|---|---|---|---|
| 1 | 1 | starter | 49 | 2022-11-03 | 2023-02-03 |
| 2 | 1 | growth | 149 | 2023-02-03 | — |
| 3 | 2 | growth | 149 | 2022-12-15 | 2023-06-15 |
| 4 | 3 | starter | 49 | 2023-01-31 | — |
| 5 | 4 | growth | 149 | 2023-02-06 | — |
| 6 | 5 | enterprise | 499 | 2023-02-22 | — |
| 7 | 6 | starter | 49 | 2023-03-01 | 2023-04-01 |
| 8 | 7 | growth | 149 | 2023-03-22 | — |
| 9 | 8 | enterprise | 499 | 2023-04-28 | — |
| 10 | 2 | starter | 49 | 2023-06-15 | — |
accounts — one row per customer company. industry is the sector that company works in; signup_date is the day it created its Loopwire account.
| id | company_name | industry | signup_date |
|---|---|---|---|
| 1 | Northwind Traders | retail | 2022-11-03 |
| 2 | Vertex Analytics | software | 2022-12-15 |
| 3 | Bluepeak Logistics | logistics | 2023-01-20 |
| 4 | Fernwood Studio | media | 2023-02-05 |
| 5 | Cobalt Health | healthcare | 2023-02-18 |
| 6 | Ridgeline Capital | finance | 2023-03-01 |
| 7 | Sable & Co | retail | 2023-03-22 |
| 8 | Hearth Robotics | manufacturing | 2023-04-10 |
Both tables already exist in the database — there is nothing to create or load.
Task: Write a query that returns two columns, company_name and days_to_convert, one row per company that has at least one contract, days_to_convert being the whole number of days from that company's signup date to the start date of its earliest contract. Shortest gap first; equal gaps are listed alphabetically by company name.
Example output
Shape only — these companies and gaps are invented:
| company_name | days_to_convert |
|---|---|
| Ironvale Systems | 0 |
| Larkspur Freight | 0 |
| Orbit Grocers | 2 |
| Quill & Bright | 9 |
| Tidewater Farms | 21 |
(...3 more rows not shown)
Sign in to solve this problem
Reading problems is free for everyone — solving them (Run, Submit, and tracking what you've solved) needs an account.
Sign in