On this page

    Categories: Window

    LAG

    Returns the row before the current one in a partition based on the ORDER BY clause without the need for a self-join. If there are no rows, this function returns NULL.

    Syntax

    LAG(expression, [offset]) OVER ([PARTITION BY partition_expression] [ORDER BY order_expression]) → same as input type

    • expression (optional): An expression that is returned.
    • offset: An optional parameter. The number of rows before the current row from which to obtain a value. Supports only a value of 1.
    • partition_expression (optional): An optional expression that groups rows into partitions.
    • order_expression: An optional expression that specifies the order of the rows within each partition.

    Examples

    LAG example
    SELECT "Category", 
      "Descript", 
      "DayOfWeek",
      LAG(DayOfWeek, 1) 
        OVER (
          PARTITION BY "Category" 
          ORDER BY "DayOfWeek")
    FROM Samples."samples.dremio.com"."SF_incidents2016.json"
    
    -- Category, Descript, DayOfWeek, EXPR$3
    -- ARSON, ARSON, Friday, null 
    -- ARSON, ARSON, Friday, Friday