在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列輸出。