在Hive中,LAG函数用于获取前一个数据行的值。它可以用于计算某个列值与前一个行的差值,或者在查询中查找前一个数据行的值。其基本语法如下:
LAG(expression[, offset[, default_value]]) OVER ( [PARTITION BY partition_expression] ORDER BY order_expression )
其中:
expression
:要获取前一个值的列或表达式offset
:可选参数,表示要获取的前几个数据行的值,默认值为1default_value
:可选参数,表示当没有前一个数据行时返回的默认值PARTITION BY
:可选参数,表示按照指定的列进行分区ORDER BY
:指定数据行的顺序以下是一个示例:
SELECT
id,
amount,
LAG(amount, 1, 0) OVER (ORDER BY id) AS previous_amount
FROM table_name;
在上面的示例中,我们使用LAG函数获取了amount列的前一个数据行的值,并将其作为previous_amount列输出。