最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中LAG、LEAD函數(shù)功能及用法

 更新時間:2025年09月28日 15:01:55   作者:Agnesgogogo  
SQL中LAG和LEAD函數(shù)用于訪問結(jié)果集前后行數(shù)據(jù),LAG取前N行,LEAD取后N行,支持偏移量和默認值,常用于計算環(huán)比、填充缺失值、趨勢預(yù)測等場景,本文給大家介紹SQL中LAG、LEAD函數(shù)功能及用法,感興趣的朋友一起看看吧

SQL中的LAG和LEAD函數(shù)是用于訪問結(jié)果集中當前行前后數(shù)據(jù)的窗口函數(shù),主要功能及用法如下:

一、函數(shù)定義

1‌、LAG函數(shù)
獲取當前行之前的第N行數(shù)據(jù),語法:

LAG(column, offset, default) OVER ([PARTITION BY] ORDER BY)

1、column:目標列名

2、offset:向前偏移的行數(shù)(默認1)

3、default:無數(shù)據(jù)時的默認值(默認NULL)

2、LEAD函數(shù) 獲取當前行之后的第N行數(shù)據(jù),語法與LAG類似(方向相反)  

LEAD(column, offset, default) OVER ([PARTITION BY] ORDER BY)

1、column:目標列名

2、offset:向前偏移的行數(shù)(默認1)

3、default:無數(shù)據(jù)時的默認值(默認NULL)

二、核心功能對比

函數(shù)方向典型應(yīng)用場景
LAG向前計算環(huán)比、填充缺失值、異常檢測
LEAD向后預(yù)測趨勢、計算后續(xù)差值

三、使用示例

1、查詢銷售額及前一日數(shù)據(jù):

SELECT 
    date,
    revenue,
    LAG(revenue, 1, 0) OVER (ORDER BY date) AS prev_revenue
FROM sales

結(jié)果中prev_revenue列顯示前一日的銷售額,首行默認值為0

2、按部門查詢員工工資及前一位同事工資:

SELECT 
    deptno,
    empname,
    salary,
    LAG(salary) OVER (PARTITION BY deptno ORDER BY hiredate) AS prev_salary
FROM emp

通過PARTITION BY實現(xiàn)分組內(nèi)偏移

3、計算每日銷售額變化量:

SELECT 
    date,
    revenue - LAG(revenue) OVER (ORDER BY date) AS daily_change
FROM sales

4、查詢連續(xù)3天下單的customer_name,比如zhangsan在12.1、12.2號和12.3號連續(xù)3天下單過

補充:TIMESTAMPDIFF函數(shù)

TIMESTAMPDIFF(DAY, buy_date, next1_buy_date) 

是 MySQL 中用于計算兩個日期之間天數(shù)差的函數(shù),其功能解析如下:

函數(shù)結(jié)構(gòu):

1、參數(shù)1 DAY:指定返回結(jié)果的時間單位(此處為天數(shù))

2、參數(shù)2 buy_date:起始日期(較早時間點)

3、參數(shù)3 next1_buy_date:結(jié)束日期(較晚時間點)

4、返回值:next1_buy_date - buy_date 的天數(shù)差(整數(shù),向下取整)

-- 寫法一
select
customer_name
from 
(
select 
customer_name,
buy_date,
lag(buy_date,1) over(partition by customer_name order by buy_date) as next1_buy_date
lead(buy_date,1) over(partition by customer_name order by buy_date) as next1_buy_date
from
order_table
)
where
TIMESTAMPDIFF(day,buy_date,next1_buy_date) = -1
and
TIMESTAMPDIFF(day,buy_date,next2_buy_date) = 1;
-- 寫法二
select
customer_name
from 
(
select 
customer_name,
buy_date,
lag(buy_date,1) over(partition by customer_name order by buy_date) as next1_buy_date
lag(buy_date,2) over(partition by customer_name order by buy_date) as next1_buy_date
from
order_table
)
where
TIMESTAMPDIFF(day,buy_date,next1_buy_date) = -1
and
TIMESTAMPDIFF(day,buy_date,next2_buy_date) = -2;

到此這篇關(guān)于SQL中LAG、LEAD函數(shù)功能及用法的文章就介紹到這了,更多相關(guān)sql lag lead函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL Server限制IP訪問數(shù)據(jù)庫的設(shè)置方法

    SQL Server限制IP訪問數(shù)據(jù)庫的設(shè)置方法

    這篇文章主要介紹了SQL Server限制IP訪問數(shù)據(jù)庫的設(shè)置方法及注意事項,因監(jiān)控中用到高權(quán)限的用戶,想像mysql一樣針對這個帳號對IP限制,本文通過圖文介紹的非常詳細,需要的朋友可以參考下
    2025-10-10
  • 一文詳解嵌入式SQL

    一文詳解嵌入式SQL

    本文主要介紹了一文詳解嵌入式SQL,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • SQL 查詢性能優(yōu)化 解決書簽查找

    SQL 查詢性能優(yōu)化 解決書簽查找

    當優(yōu)化器所選擇的非聚簇索引只包含查詢請求的一部分字段時,就需要一個查找(lookup)來檢索其他字段來滿足請求
    2012-08-08
  • SQL Server日期計算

    SQL Server日期計算

    SQL Server日期計算...
    2007-03-03
  • sql 多表連接查詢

    sql 多表連接查詢

    sql 多表連接查詢語句代碼,大家可以參考下。
    2009-06-06
  • 分享一下SQL Server執(zhí)行動態(tài)SQL的正確方式

    分享一下SQL Server執(zhí)行動態(tài)SQL的正確方式

    這篇文章主要介紹了SQL Server執(zhí)行動態(tài)SQL正確方式,需要的朋友可以參考下
    2017-06-06
  • SQL中的UNION ALL和UNION 區(qū)別及如何使用

    SQL中的UNION ALL和UNION 區(qū)別及如何使用

    UNIONALL是SQL中用于合并兩個或多個SELECT查詢結(jié)果集的操作符,其核心特點是保留所有行,下面從語法、使用條件、示例、性能特點及注意事項等方面系統(tǒng)講解 UNION ALL 的使用方法,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • SQL server 自增ID--序號自動增加的字段操作

    SQL server 自增ID--序號自動增加的字段操作

    這篇文章主要介紹了SQL server 自增ID--序號自動增加的字段操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • sql刪除重復(fù)數(shù)據(jù)的詳細方法

    sql刪除重復(fù)數(shù)據(jù)的詳細方法

    重復(fù)數(shù)據(jù),通常有兩種:一是完全重復(fù)的記錄,也就是所有字段的值都一樣;二是部分字段值重復(fù)的記錄
    2013-05-05
  • SQL?Server日期時間和字符串之間的轉(zhuǎn)換方法實例

    SQL?Server日期時間和字符串之間的轉(zhuǎn)換方法實例

    處理原始數(shù)據(jù)時,您可能經(jīng)常會遇到存儲為文本的日期值,將這些值轉(zhuǎn)換為日期數(shù)據(jù)類型非常重要,因為在分析過程中日期可能更有價值,下面這篇文章主要給大家介紹了關(guān)于SQL?Server日期時間和字符串之間的轉(zhuǎn)換方法,需要的朋友可以參考下
    2023-06-06

最新評論

汤原县| 冀州市| 九龙县| 林周县| 高唐县| 且末县| 来安县| 海南省| 玉门市| 正镶白旗| 沈丘县| 马公市| 开原市| 太湖县| 蕲春县| 攀枝花市| 西畴县| 广宁县| 万州区| 保定市| 平顺县| 东乡| 泽州县| 广安市| 正阳县| 鞍山市| 贵州省| 芮城县| 伊通| 将乐县| 泰和县| 永济市| 宕昌县| 灌南县| 游戏| 安吉县| 凤山市| 九龙坡区| 门头沟区| 龙游县| 南江县|