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 |