溫馨提示×

如何在SQL中使用Lag函數

sql
小樊
187
2024-09-08 01:42:52
欄目: 云計算

LAG() 函數是 SQL 中的一個窗口函數,它可以訪問結果集中當前行之前的某一行

以下是 LAG() 函數的基本語法:

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

參數說明:

  • column_name:要操作的列名。
  • offset:(可選)指定要訪問的行與當前行之間的偏移量。默認值為 1,表示訪問前一行。
  • default_value:(可選)當偏移量超出范圍時,返回的默認值。如果沒有提供此參數,則返回 NULL。
  • PARTITION BY partition_column:(可選)將結果集劃分為多個分區,每個分區內的行將單獨進行排序和計算。
  • ORDER BY order_column:指定對分區內的行進行排序的列。

以下是一個使用 LAG() 函數的示例。假設我們有一個名為 sales_data 的表,其中包含以下列:sales_date、product_id 和 daily_sales。我們想要查詢每個產品在每天的銷售額以及前一天的銷售額。

SELECT
    product_id,
    sales_date,
    daily_sales,
    LAG(daily_sales, 1, 0) OVER (PARTITION BY product_id ORDER BY sales_date) AS previous_day_sales
FROM
    sales_data
ORDER BY
    product_id,
    sales_date;

這個查詢將返回一個結果集,其中包含每個產品在每天的銷售額以及前一天的銷售額。如果前一天沒有銷售額數據,則返回默認值 0。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女