亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MYSQL LAG()與LEAD()的區(qū)別

 更新時(shí)間:2023年05月16日 10:30:21   作者:螞蟻*漫步  
MYSQL LAG()與LEAD()這兩個(gè)函數(shù)是偏移量函數(shù),可以查出一個(gè)字段的前面N個(gè)值或者后面N個(gè)值,本文詳細(xì)的介紹一下這兩個(gè)函數(shù)的區(qū)別,感興趣的可以了解一下

這兩個(gè)函數(shù)是偏移量函數(shù),可以查出一個(gè)字段的前面N個(gè)值或者后面N個(gè)值,配合over來(lái)使用。

下面舉例說(shuō)明,新建表格如下:

drop table if exists exam_record;
CREATE TABLE exam_record (
    id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
    uid int NOT NULL COMMENT '用戶ID',
    exam_id int NOT NULL COMMENT '試卷ID',
    start_time datetime NOT NULL COMMENT '開(kāi)始時(shí)間',
    submit_time datetime COMMENT '提交時(shí)間',
    score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES
(1001, 9001, '2020-01-01 09:01:01', '2020-01-01 09:21:59', 90),
(1002, 9001, '2020-01-20 10:01:01', '2020-01-20 10:10:01', 89),
(1002, 9001, '2020-02-01 12:11:01', '2020-02-01 12:31:01', 83),
(1003, 9001, '2020-03-01 19:01:01', '2020-03-01 19:30:01', 75),
(1004, 9001, '2020-03-01 12:01:01', '2020-03-01 12:11:01', 60),
(1003, 9001, '2020-03-01 12:01:01', '2020-03-01 12:41:01', 90),
(1002, 9001, '2020-05-02 19:01:01', '2020-05-02 19:32:00', 90),
(1001, 9002, '2020-01-02 19:01:01', '2020-01-02 19:59:01', 69),
(1004, 9002, '2020-02-02 12:01:01', '2020-02-02 12:20:01', 99),
(1003, 9002, '2020-02-02 12:01:01', '2020-02-02 12:31:01', 68),
(1001, 9002, '2020-02-02 12:01:01', '2020-02-02 12:43:01', 81),
(1001, 9002, '2020-03-02 12:11:01', null, null);

 1.lag()

語(yǔ)法:lag(expr,N,default)

  • expr:它可以是列或任何內(nèi)置函數(shù)。
  • N:它是一個(gè)正值,它確定當(dāng)前行之前的行數(shù)。如果在查詢中將其省略,則其默認(rèn)值為1
  • default:如果在當(dāng)前行之前沒(méi)有行N行的情況下,它是函數(shù)返回的默認(rèn)值。如果缺少,則默認(rèn)為NULL。
select *,lag(start_time,1) over(order by id)lad_1,
lag(uid,2) over(order by id)lad_2 
from exam_record

可以看到所有的start_time都等于前面一個(gè)的start_time,前面沒(méi)有的填充NULL,設(shè)置lag()里面的參數(shù)為2,可以看到所有的uid偏移了兩個(gè)。

select *,lag(start_time,2,0) over(partition by uid order by id)lag_1
from exam_record

根據(jù)uid分組對(duì)start_time向前移動(dòng)2個(gè)單元,然后設(shè)置NULL值默認(rèn)填充為0. 可以自己體會(huì)一下數(shù)據(jù)的移動(dòng)方式。

2.lead()

語(yǔ)法:lead(expr,N,default)

  • expr:它可以是列或任何內(nèi)置函數(shù)。
  • N:它是一個(gè)正值,它確定當(dāng)前行之后的行數(shù)。如果在查詢中將其省略,則其默認(rèn)值為1
  • default:如果在當(dāng)前行之后沒(méi)有行N行的情況下,它是函數(shù)返回的默認(rèn)值。如果缺少,則默認(rèn)為NULL。
select *,lead(start_time,1) over(order by id)lead_1,
lead(uid,2) over(order by id)lead_2 
from exam_record

可以看到所有的start_time都等于后面一個(gè)的start_time,后面沒(méi)有的填充NULL,設(shè)置lead()里面的參數(shù)為2,可以看到所有的uid都等于后面第二個(gè)的uid。

select *,lead(start_time,1) over(partition by uid order by id)lead_1
from exam_record

 還可以根據(jù)uid進(jìn)行分組,然后再進(jìn)行偏移。

到此這篇關(guān)于MYSQL LAG()與LEAD()的區(qū)別的文章就介紹到這了,更多相關(guān)MYSQL LAG() LEAD()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 原來(lái)MySQL?數(shù)據(jù)類型也可以優(yōu)化

    原來(lái)MySQL?數(shù)據(jù)類型也可以優(yōu)化

    這篇文章主要介紹了原來(lái)MySQL?數(shù)據(jù)類型也可以優(yōu)化,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • 對(duì)MySQL慢查詢?nèi)罩具M(jìn)行分析的基本教程

    對(duì)MySQL慢查詢?nèi)罩具M(jìn)行分析的基本教程

    這篇文章主要介紹了對(duì)MySQL慢查詢?nèi)罩具M(jìn)行分析的基本教程,文中提到的Query-Digest-UI這個(gè)基于B/S的圖形化查看工具非常好用,需要的朋友可以參考下
    2015-12-12
  • PHP學(xué)習(xí)散記 2012_01_07(MySQL)

    PHP學(xué)習(xí)散記 2012_01_07(MySQL)

    數(shù)據(jù)庫(kù)是Web大多數(shù)應(yīng)用開(kāi)發(fā)的基礎(chǔ)。如果你是用PHP,那么大多數(shù)據(jù)庫(kù)用的是MYSQL也是LAMP架構(gòu)的重要部分
    2012-01-01
  • Mysql配置主從復(fù)制-GTID模式詳解

    Mysql配置主從復(fù)制-GTID模式詳解

    這篇文章主要介紹了Mysql配置主從復(fù)制-GTID模式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 在MySQL中使用STRAIGHT_JOIN的教程

    在MySQL中使用STRAIGHT_JOIN的教程

    這篇文章主要介紹了在MySQL中使用STRAIGHT_JOIN的教程,包括使用STRAIGHT_JOIN進(jìn)行一些性能上的優(yōu)化的技巧,需要的朋友可以參考下
    2015-05-05
  • mysql獲得60天前unix時(shí)間的方法

    mysql獲得60天前unix時(shí)間的方法

    首先根據(jù)now()獲得當(dāng)前時(shí)間,使用adddate()方法獲得60天前時(shí)間,使用unix_timestamp()方法轉(zhuǎn)換時(shí)間類型,需要的朋友可以參考下
    2014-09-09
  • MySQL執(zhí)行update語(yǔ)句和原數(shù)據(jù)相同會(huì)再次執(zhí)行嗎

    MySQL執(zhí)行update語(yǔ)句和原數(shù)據(jù)相同會(huì)再次執(zhí)行嗎

    這篇文章主要給大家介紹了關(guān)于MySQL執(zhí)行update語(yǔ)句和原數(shù)據(jù)相同是否會(huì)再次執(zhí)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Docker啟動(dòng)mysql配置實(shí)現(xiàn)過(guò)程

    Docker啟動(dòng)mysql配置實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了Docker啟動(dòng)mysql配置實(shí)現(xiàn)過(guò)程,文中附含詳細(xì)的圖文示例,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09
  • MySQL事務(wù)與鎖實(shí)例教程詳解

    MySQL事務(wù)與鎖實(shí)例教程詳解

    事務(wù)是指滿足ACID特性的的一組操作,可以通過(guò)Commit提交事務(wù),也可以也可以通過(guò)Rollback進(jìn)行回滾。會(huì)存在中間態(tài)和一致性狀態(tài),也是真正在數(shù)據(jù)庫(kù)表中存在的狀態(tài)
    2022-11-11
  • mysql 連接出現(xiàn)Public Key Retrieval is not allowed的問(wèn)題解決

    mysql 連接出現(xiàn)Public Key Retrieval is n

    在MySQL連接中出現(xiàn)“Public Key Retrieval is not allowed”錯(cuò)誤,通常是因?yàn)樵谑褂冒踩捉幼謱樱⊿SL)連接時(shí)遇到了問(wèn)題,本文就來(lái)介紹一下解決方法,感興趣的可以了解一下
    2024-03-03

最新評(píng)論