LAG() / LEAD()

LAG() / LEAD()

  • Access value from previous/next row(s)

Window functions are only available in Analytics queries

Code

def qapi = api.queryApi() def exprs = qapi.exprs() def orders = qapi.orders() def t = qapi.tables().dataSource("PriceHistory") def wnd = qapi.exprs().window() .allRows() .partitionBy([t.sku]) .sortBy([orders.ascNullsLast(t.ValidFrom)]) qapi.source(t, [t.sku, t.ValidFrom, t.Price, wnd.lag(t.Price).as("Lag"), wnd.lag(t.Price).minus(t.Price).as("Diff") ] ) .stream { it.toList() }

Result

LagLead.png

See Also