Reports often need a cumulative figure, like total hires so far at each date or a balance after every transaction. SUM() OVER (ORDER BY ...) adds up values from the first row to the current one while keeping every row. Use it for running totals, moving averages and cumulative counts. A plain GROUP BY cannot do this, because it collapses the rows you want to keep.