Lag函數(shù)是一種窗口函數(shù),它用于比較當前行與前一行的數(shù)據(jù)
LAG(column_name, offset, default_value) OVER (PARTITION BY partition_column ORDER BY order_column)
參數(shù)說明:
下面是一個使用Lag函數(shù)的例子:
-- 假設有一個銷售數(shù)據(jù)表sales_data,包含日期(date)和銷售額(sales)兩個字段
WITH sales_data AS (
SELECT '2021-01-01' AS date, 100 AS sales
UNION ALL SELECT '2021-01-02', 150
UNION ALL SELECT '2021-01-03', 200
UNION ALL SELECT '2021-01-04', 180
)
SELECT
date,
sales,
LAG(sales, 1, 0) OVER (ORDER BY date) AS previous_day_sales
FROM sales_data;
查詢結(jié)果如下:
date | sales | previous_day_sales |
---|---|---|
2021-01-01 | 100 | 0 |
2021-01-02 | 150 | 100 |
2021-01-03 | 200 | 150 |
2021-01-04 | 180 | 200 |
在這個例子中,我們使用Lag函數(shù)比較了當前行與前一行的銷售額。對于第一行數(shù)據(jù),由于沒有前一行數(shù)據(jù),所以返回了默認值0。