SQL ROLLBACK
SQL ROLLBACK helps analysts discard every uncommitted change in the current transaction.
What & Why
The ROLLBACK pattern is used to discard every uncommitted change in the current transaction. This keeps the SQL aligned with one concrete business question and makes the result grain explicit before the query is reused.
See How It Works
BUSINESS QUESTION
Growth finds churned user rows that fail validation and should cause the whole transaction to be discarded.
| id | created_at | country | channel | plan | activated_at | churned_at |
|---|---|---|---|---|---|---|
| 101 | 2024-01-15 09:10:00+00 | US | organic | pro | 2024-01-16 14:25:00+00 | NULL |
| 102 | 2024-02-10 11:05:00+00 | CA | paid | free | NULL | 2024-03-20 10:00:00+00 |
| 103 | 2024-03-12 16:35:00+00 | GB | referral | pro | 2024-03-13 08:15:00+00 | NULL |
| 104 | 2024-04-01 13:20:00+00 | US | organic | free | 2024-04-03 12:00:00+00 | NULL |
EXAMPLE QUERY
-- ROLLBACK; discards every uncommitted statement since BEGIN.
SELECT
id AS user_id,
plan,
churned_at
FROM growth.users
WHERE churned_at IS NOT NULL
ORDER BY user_id;RESULT — users with recorded churn
| user_id | plan | churned_at |
|---|---|---|
| 102 | free | 2024-03-20 10:00:00+00 |
Only user 102 has a persisted churn timestamp in the representative data.
This lesson's practice is part of Pro.
Sign up free to try it on a real business scenario