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

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

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

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

下面舉例說明,新建表格如下:

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 '開始時間',
    submit_time datetime COMMENT '提交時間',
    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()

語法:lag(expr,N,default)

  • expr:它可以是列或任何內(nèi)置函數(shù)。
  • N:它是一個正值,它確定當(dāng)前行之前的行數(shù)。如果在查詢中將其省略,則其默認(rèn)值為1
  • default:如果在當(dāng)前行之前沒有行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都等于前面一個的start_time,前面沒有的填充NULL,設(shè)置lag()里面的參數(shù)為2,可以看到所有的uid偏移了兩個。

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

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

2.lead()

語法:lead(expr,N,default)

  • expr:它可以是列或任何內(nèi)置函數(shù)。
  • N:它是一個正值,它確定當(dāng)前行之后的行數(shù)。如果在查詢中將其省略,則其默認(rèn)值為1
  • default:如果在當(dāng)前行之后沒有行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都等于后面一個的start_time,后面沒有的填充NULL,設(shè)置lead()里面的參數(shù)為2,可以看到所有的uid都等于后面第二個的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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql自增長id用完了該怎么辦

    mysql自增長id用完了該怎么辦

    如果你用過或了解過MySQL,那你一定知道自增主鍵了,下面這篇文章主要給大家介紹了關(guān)于mysql自增長id用完了該怎么辦的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • 將圖片儲存在MySQL數(shù)據(jù)庫中的幾種方法

    將圖片儲存在MySQL數(shù)據(jù)庫中的幾種方法

    今天小編就為大家分享一篇關(guān)于將圖片儲存在MySQL數(shù)據(jù)庫中的幾種方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • mysql如何在存儲過程中輸出日志信息

    mysql如何在存儲過程中輸出日志信息

    這篇文章主要介紹了mysql如何在存儲過程中輸出日志信息問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MAC下MySQL忘記初始密碼怎么辦

    MAC下MySQL忘記初始密碼怎么辦

    MySQL初始密碼忘記怎么辦,這篇文章主要介紹了MAC下MySQL忘記初始密碼的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • mysql中文顯示為問號?的問題及解決

    mysql中文顯示為問號?的問題及解決

    這篇文章主要介紹了mysql中文顯示為問號?的問題及解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 連接MySQL出現(xiàn)Host is not allowed to connect to this MySQL server 解決方法詳解

    連接MySQL出現(xiàn)Host is not allowed to con

    這篇文章主要給大家介紹了連接MySQL出現(xiàn)Host is not allowed to connect to this MySQL server 解決方法,文中有詳細(xì)的解決步驟,需要的朋友可以參考下
    2023-08-08
  • mysql5.7及mysql 8.0版本修改root密碼的方法小結(jié)

    mysql5.7及mysql 8.0版本修改root密碼的方法小結(jié)

    這篇文章主要介紹了mysql5.7及mysql 8.0版本修改root密碼方式 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • Mysql中SUM()函數(shù)使用方法

    Mysql中SUM()函數(shù)使用方法

    這篇文章主要給大家介紹了關(guān)于Mysql中SUM()函數(shù)使用的相關(guān)資料,MySQL 的 SUM 函數(shù)可以用來對某個列進(jìn)行求和,但是如果你想要按照某個條件進(jìn)行求和,可以使用帶有WHERE子句的SUM函數(shù),需要的朋友可以參考下
    2023-08-08
  • MySQL日志配置與查看方法

    MySQL日志配置與查看方法

    作為數(shù)據(jù)庫管理員,我曾多次遇到因日志配置不當(dāng)導(dǎo)致的線上故障,今天我將結(jié)合多年一線運維經(jīng)驗,系統(tǒng)講解MySQL五大核心日志的配置與查看方法,并附上實際生產(chǎn)環(huán)境中的排錯案例,需要的朋友可以參考下
    2025-09-09
  • SQL多個字段拼接組合成新字段的常用方法

    SQL多個字段拼接組合成新字段的常用方法

    在sql語句中,有時候我們可能需要將兩個字段的值放在一起顯示,因為他們通常是一起出現(xiàn)的,比如客戶名稱和客戶編號,那我們就要將這兩個字段拼接成一個字段,本文給大家介紹了幾種常見的方法,需要的朋友可以參考下
    2024-02-02

最新評論