最新国产好看的视频,伊人天堂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行,支持偏移量和默認(rèn)值,常用于計算環(huán)比、填充缺失值、趨勢預(yù)測等場景,本文給大家介紹SQL中LAG、LEAD函數(shù)功能及用法,感興趣的朋友一起看看吧

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

一、函數(shù)定義

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

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

1、column:目標(biāo)列名

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

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

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

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

1、column:目標(biāo)列名

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

3、default:無數(shù)據(jù)時的默認(rèn)值(默認(rèn)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列顯示前一日的銷售額,首行默認(rèn)值為0

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

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

通過PARTITION BY實(shí)現(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天下單過

補(bǔ)充: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:起始日期(較早時間點(diǎn))

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

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限制,本文通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10
  • 一文詳解嵌入式SQL

    一文詳解嵌入式SQL

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

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

    當(dāng)優(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é)果集的操作符,其核心特點(diǎn)是保留所有行,下面從語法、使用條件、示例、性能特點(diǎn)及注意事項等方面系統(tǒng)講解 UNION ALL 的使用方法,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • SQL server 自增ID--序號自動增加的字段操作

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

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

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

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

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

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

最新評論

六安市| 乐安县| 陇川县| 东光县| 商洛市| 永登县| 靖宇县| 新邵县| 宁津县| 龙井市| 滦平县| 武平县| 江油市| 黄冈市| 嘉荫县| 江津市| 苏州市| 绵阳市| 台南市| 涟源市| 龙门县| 衡水市| 绵阳市| 东方市| 平湖市| 桃源县| 襄樊市| 滕州市| 黑河市| 凤台县| 浪卡子县| 镇雄县| 弋阳县| 于田县| 含山县| 伊金霍洛旗| 吐鲁番市| 安多县| 余庆县| 忻州市| 石阡县|