欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)使用。

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

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 '開始時(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)前行之前沒有行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,前面沒有的填充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)前行之后沒有行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,后面沒有的填充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)文章

  • mysql自增長(zhǎng)id用完了該怎么辦

    mysql自增長(zhǎng)id用完了該怎么辦

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

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

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

    mysql如何在存儲(chǔ)過程中輸出日志信息

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

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

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

    mysql中文顯示為問號(hào)?的問題及解決

    這篇文章主要介紹了mysql中文顯示為問號(hào)?的問題及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    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密碼方式 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Mysql中SUM()函數(shù)使用方法

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

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

    MySQL日志配置與查看方法

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

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

    在sql語(yǔ)句中,有時(shí)候我們可能需要將兩個(gè)字段的值放在一起顯示,因?yàn)樗麄兺ǔJ且黄鸪霈F(xiàn)的,比如客戶名稱和客戶編號(hào),那我們就要將這兩個(gè)字段拼接成一個(gè)字段,本文給大家介紹了幾種常見的方法,需要的朋友可以參考下
    2024-02-02

最新評(píng)論