Your question is First Deposit After Signup. Start with the requirements and the two tables on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
You are given user signup data and Chime cash movement events. Write a SQL query to return each signed-up user and the date of their first completed deposit that occurred on or after their signup timestamp. Include users who never made a qualifying deposit, showing NULL for the deposit date. Treat only transactions with transaction_type = 'deposit' and status = 'completed' as valid deposits.
| Column | Type | Description |
|---|---|---|
| user_idPK | INT | Unique user identifier |
| VARCHAR(255) | User email address | |
| signup_at | TIMESTAMP | Timestamp when the user signed up |
| acquisition_channel | VARCHAR(50) | Marketing or referral source for signup |
| Column | Type | Description |
|---|---|---|
| transaction_idPK | INT | Unique transaction identifier |
| user_id | INT | User associated with the transaction |
| transaction_type | VARCHAR(50) | Transaction type such as deposit or withdrawal |
| status | VARCHAR(50) | Processing status of the transaction |
| amount | NUMERIC(10,2) | Transaction amount |
| transaction_at | TIMESTAMP | Timestamp when the transaction occurred |
| source_surface | VARCHAR(50) | Chime product surface where the transaction originated |