LAG()
LAG() is a SQL function in the Window Functions category. Accesses data from a previous row within the same result set (useful for comparing values). The syntax is LAG(column, offset, default) OVER (ORDER BY column). It accepts column, offset, default. It returns value from previous row. A typical example: SELECT date, revenue, LAG(revenue) OVER (ORDER BY date) AS prev_day_revenue, revenue - LAG(revenue) OVER (ORDER BY date) AS daily_change FROM daily_sales; -- Compare each day with the previous day A close relative is ROW_NUMBER(), which assigns a unique sequential integer to each row within its partition (1, 2, 3...). A close relative is RANK(), which similar to ROW_NUMBER but gives the same rank to equal values. Leaves gaps in ranking. A close relative is DENSE_RANK(), which like RANK but without gaps. Equal values get the same rank, and the next number follows sequentially. More about this category: Window/analytical functions — ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, NTILE.