Interview Guides

PulseBoard wants to measure whether newly active users come back within 30 days of their first login. Write a SQL query to calculate 30-day retention by signup cohort date.
A user is considered retained if they have at least one feature usage event between 1 and 30 days after their first login date. Ignore usage on the same day as first login.
user_logins table.feature_usage and determine whether the user had any usage event from first_login_date + 1 day through first_login_date + 30 days.signup_date from the users table with:
signup_datecohort_sizeretained_usersretention_rate rounded to 4 decimal placessignup_date ascending.users| column | type | description |
|---|---|---|
| user_id | INT | Unique user identifier |
| user_name | VARCHAR(100) | User name |
| signup_date | DATE | User signup date |
| plan_type | VARCHAR(20) | Subscription plan |
user_logins| column | type | description |
|---|---|---|
| login_id | INT | Unique login event identifier |
| user_id | INT | User who logged in |
| login_date | DATE | Login date |
| device_type | VARCHAR(20) | Device used for login |
feature_usage| column | type | description |
|---|---|---|
| usage_id | INT | Unique feature usage event identifier |
| user_id | INT | User who used a feature |
| usage_date | DATE | Feature usage date |
| feature_name | VARCHAR(50) | Feature used |