SQL Practice Logo

SQLPractice Online

Level 5 - SeniorOptimization Questions

Optimization: Filter Before Window

Interviewer prompt: Need running spend only for active subscriptions. Pick better query. Query A: SELECT s.subscription_id, t.txn_ts, SUM(t.amount) OVER (PARTITION BY s.subscription_id ORDER BY t.txn_ts) AS running_spend FROM subscriptions s JOIN transactions t ON s.subscription_id = t.subscription_id WHERE s.status = 'ACTIVE'; Query B: WITH active_txn AS (SELECT t.subscription_id, t.txn_ts, t.amount FROM transactions t JOIN subscriptions s ON s.subscription_id = t.subscription_id WHERE s.status = 'ACTIVE') SELECT subscription_id, txn_ts, SUM(amount) OVER (PARTITION BY subscription_id ORDER BY txn_ts) AS running_spend FROM active_txn;