iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MYSQL LAG()与LEAD()的区别
  • 176
分享到

MYSQL LAG()与LEAD()的区别

MYSQLLAG()LEAD() 2023-05-16 11:05:41 176人浏览 薄情痞子
摘要

目录 1.lag()2.lead()这两个函数是偏移量函数,可以查出一个字段的前面N个值或者后面N个值,配合over来使用。 下面举例说明,新建表格如下: drop table if exists e

这两个函数是偏移量函数,可以查出一个字段的前面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);

MYSQL LAG()与LEAD()的区别

 1.lag()

语法:lag(expr,N,default)

  • expr:它可以是列或任何内置函数。
  • N:它是一个正值,它确定当前行之前的行数。如果在查询中将其省略,则其默认值为1
  • default:如果在当前行之前没有行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

MYSQL LAG()与LEAD()的区别

可以看到所有的start_time都等于前面一个的start_time,前面没有的填充NULL,设置lag()里面的参数为2,可以看到所有的uid偏移了两个。

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

MYSQL LAG()与LEAD()的区别

根据uid分组对start_time向前移动2个单元,然后设置NULL值默认填充为0. 可以自己体会一下数据的移动方式。

2.lead()

语法:lead(expr,N,default)

  • expr:它可以是列或任何内置函数。
  • N:它是一个正值,它确定当前行之后的行数。如果在查询中将其省略,则其默认值为1
  • default:如果在当前行之后没有行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

MYSQL LAG()与LEAD()的区别

可以看到所有的start_time都等于后面一个的start_time,后面没有的填充NULL,设置lead()里面的参数为2,可以看到所有的uid都等于后面第二个的uid。

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

MYSQL LAG()与LEAD()的区别

 还可以根据uid进行分组,然后再进行偏移。

到此这篇关于Mysql LAG()与LEAD()的区别的文章就介绍到这了,更多相关mysql LAG() LEAD()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MYSQL LAG()与LEAD()的区别

本文链接: https://www.lsjlt.com/news/209536.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MYSQL LAG()与LEAD()的区别
    目录 1.lag()2.lead()这两个函数是偏移量函数,可以查出一个字段的前面N个值或者后面N个值,配合over来使用。 下面举例说明,新建表格如下: drop table if exists e...
    99+
    2023-05-16
    MYSQL LAG() LEAD()
  • 【Mysql系列】LAG与LEAD开窗函数
    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,...
    99+
    2023-12-22
    mysql 数据库
  • mysql怎么实现的lead和lag函数功能
    本篇内容主要讲解“mysql怎么实现的lead和lag函数功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql怎么实现的lead和lag函数功能”吧! ...
    99+
    2024-04-02
  • oracle中lag(函数和lead(函数的用法
    oracle 中 lag() 和 lead() 函数可从当前行获取指定行偏移量之前(lag())或之后(lead())行的值。它们用于分析时间序列数据和计算移动平均值。lag() 函数返...
    99+
    2024-05-03
    oracle
  • MySQL @与@@区别
    MySQL @与@@区别1、@xxx 是 用户自定义的变量  (User variables are written as @var_name)2、@@x xxx是 global或session变量  (@...
    99+
    2024-04-02
  • mongodb与mysql区别
    MySQL是关系型数据库。   优势:1、在不同的引擎上有不同 的存储方式。2、查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。3、开源数据库的份额在不断增加,mysql...
    99+
    2024-04-02
  • Redis与Mysql区别
    一、关系型数据库   mysql,pgsql,oracle ,sqlserver 支持连表关联查询(会有一些特定的语法特特性)   二、非关系型数据库 redis,mongodb,memcache (key-value)   三、关系型数据...
    99+
    2023-09-09
    redis
  • mysql中null与(null)的区别
    在 mysql 中,null 代表空值,不占用空间,而 (null) 是空字符串值,占用 1 字节空间。它们的区别包括:存储方式不同、比较方式不同、插入方式不同、聚合函数处理方式不同、索...
    99+
    2024-05-01
    mysql 聚合函数
  • mysql中null与(null的区别
    mysql 中 null 和 (null) 区别如下:null 表示未知值,而 (null) 表示明确空值。null 不占用存储空间,而 (null) 占用一个字节。null 不等于任何...
    99+
    2024-05-01
    mysql
  • Oracle与MySQL的区别详解
    目录什么是mysql什么是oracleMySQL的优点MySQL的缺点Oracle的优点Oracle的缺点Oracle与MySQL的区别什么是MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司...
    99+
    2023-04-14
    Oracle与MySQL的区别 Oracle与MySQL优缺点 Oracle优缺点 MySQL优缺点
  • mysql与oracle的具体区别
    mysql与oracle的具体区别 本质的区别 Oracle数据库是一个对象关系数据库管理系统(ORDBMS)。它通常被称为Oracle RDBMS或简称为Oracle,是一个收费的数据库。 MySQL是一个开源的关系数据库管理系统(RDB...
    99+
    2023-09-02
    数据库 mysql oracle
  • access与mysql的区别是什么
    这篇文章主要介绍了access与mysql的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。access与mysql的区别:(1)Mys...
    99+
    2024-04-02
  • nosql与mysql的区别是什么
    这篇文章主要介绍“nosql与mysql的区别是什么”,在日常操作中,相信很多人在nosql与mysql的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nosql与...
    99+
    2023-02-09
    nosql mysql
  • mysql group by与order by的区别
    本篇内容介绍了“mysql group by与order by的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • mariadb与mysql的区别是什么
    这篇文章主要讲解了“mariadb与mysql的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mariadb与mysql的区别是什么”吧! ...
    99+
    2024-04-02
  • mysql与db2的区别有哪些
    这篇“mysql与db2的区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysq...
    99+
    2024-04-02
  • mysql中replaceinto与insertinto区别
    replace into 遇到主键或唯一索引冲突时,会先删除数据,再插入新数据 insert into 遇到主键或唯一索引冲突时,会直接报错,不插入数据 案例: 新建一个test表,...
    99+
    2023-01-18
    mysql replace into mysql insert into replace into与insert into
  • Oracle与MySQL的区别是什么
    这篇文章主要讲解了“Oracle与MySQL的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle与MySQL的区别是什么”吧!什么是MySQLMySQL是一个关系型数据库管...
    99+
    2023-07-06
  • mysql与mysqli的区别是什么
    mysql与mysqli的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql与mysqli的区别: ...
    99+
    2024-04-02
  • mysql与mssql的区别有哪些
    本篇内容主要讲解“mysql与mssql的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql与mssql的区别有哪些”吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作