Oracle的LAG函數是一個分析函數,用于在查詢結果中獲取當前行之前的某一行的值
LAG函數的基本語法如下:
LAG(column, offset, default_value) OVER (ORDER BY order_by_column)
其中:
以下是一個簡單的示例,展示了如何使用LAG函數來獲取員工的前一個月的銷售額:
SELECT employee_id, sale_date, sales_amount,
LAG(sales_amount, 1, 0) OVER (PARTITION BY employee_id ORDER BY sale_date) AS prev_month_sales
FROM sales;
在這個示例中,我們從sales
表中選擇employee_id
、sale_date
和sales_amount
列。然后,我們使用LAG函數獲取每個員工前一個月的銷售額。PARTITION BY
子句用于將數據按員工ID分組,而ORDER BY
子句用于按銷售日期排序。如果沒有前一個月的銷售額數據,LAG函數將返回默認值0。