sql

Lag函数在比较当前行与前一行数据时的用法

小樊
104
2024-09-08 01:48:57
栏目: 编程语言

Lag函数是一种窗口函数,它用于比较当前行与前一行的数据

LAG(column_name, offset, default_value) OVER (PARTITION BY partition_column ORDER BY order_column)

参数说明:

下面是一个使用Lag函数的例子:

-- 假设有一个销售数据表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;

查询结果如下:

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函数比较了当前行与前一行的销售额。对于第一行数据,由于没有前一行数据,所以返回了默认值0。

0
看了该问题的人还看了