Windows II — frames & running
Exercise · SQL & Querying

Predict, then run it

Predict the output

sales(d, amt) = May-01 10, May-02 20, May-05 30 (May 3–4 missing). Trailing-3-day totals over a spine, so ROWS means days and quiet days appear:

WITH spine AS (SELECT g::DATE AS d FROM generate_series(DATE '2027-05-01', DATE '2027-05-05', INTERVAL 1 DAY) AS t(g)), daily AS (SELECT sp.d, COALESCE(SUM(s.amt), 0) AS amt FROM spine sp LEFT JOIN sales s ON s.d = sp.d GROUP BY sp.d) SELECT strftime(d, '%m-%d') AS day, SUM(amt) OVER (ORDER BY d ROWS 2 PRECEDING) AS roll FROM daily ORDER BY d;

Predict the exact output.