MySQL中LAG()函数和LEAD()函数的使用


Posted in MySQL onAugust 14, 2022

一、窗口函数的基本用法

从MySQL8之后才开始支持窗口函数

<窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>)

二、LAG()和LEAD()函数介绍

  • lag和lead分别是向前向后的意思
  • 参数有三个。expression:列名;offset:偏移量;default_value:超出记录窗口的默认值(默认为null,可以设置为0)

三、数据准备(建表sql在最后)

MySQL中LAG()函数和LEAD()函数的使用

1、LAG()函数:统计与前一天相比温度更高的日期Id

我们先按照日期进行排序,然后找到当天比前一天温度高的id;使用lag()函数,将温度向后推一天。

select id, date, temperature, LAG(temperature, 1, 0) OVER (order by date) as temp FROM weather

查询结果:

MySQL中LAG()函数和LEAD()函数的使用

然后将temperature大于temp 并且temp不等于0的数据挑选出来

select id from (select id, date, temperature, LAG(temperature, 1, 0) OVER (order by date) as temp FROM weather) tmp where temperature>temp and temp != 0;

结果如下:

MySQL中LAG()函数和LEAD()函数的使用

2、LEAD()函数:统计与后一天相比温度更高的日期Id

我们还是先按照日期进行排序,然后找到当天比后一天温度高的id;使用lead()函数,将温度向后推一天。

select id, date, temperature, LEAD(temperature, 1, 0) OVER (order by date) as temp FROM weather

查询结果:

MySQL中LAG()函数和LEAD()函数的使用

然后将temperature大于temp 并且temp不等于0的数据挑选出来

select id from (select id, date, temperature, LEAD(temperature, 1, 0) OVER (order by date) as temp FROM weather) tmp where temperature>temp and temp != 0;

查询结果:

MySQL中LAG()函数和LEAD()函数的使用

四、建表数据sql

DROP TABLE IF EXISTS `weather`;
CREATE TABLE `weather`  (
  `id` int(11) NOT NULL,
  `date` date NULL DEFAULT NULL,
  `temperature` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of weather
-- ----------------------------
INSERT INTO `weather` VALUES (1, '2022-08-01', 20);
INSERT INTO `weather` VALUES (2, '2022-08-02', 25);
INSERT INTO `weather` VALUES (3, '2022-08-03', 22);
INSERT INTO `weather` VALUES (4, '2022-08-04', 22);
INSERT INTO `weather` VALUES (5, '2022-08-05', 26);
INSERT INTO `weather` VALUES (6, '2022-08-06', 28);
INSERT INTO `weather` VALUES (7, '2022-08-07', 20);

SET FOREIGN_KEY_CHECKS = 1;

到此这篇关于MySQL中LAG()函数和LEAD()函数的使用的文章就介绍到这了,更多相关mysql LAG()和LEAD()函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL sql_mode修改不生效的原因及解决
May 07 MySQL
Mysql 设置boolean类型的操作
Jun 04 MySQL
Mysql 如何实现多张无关联表查询数据并分页
Jun 05 MySQL
mysql 带多个条件的查询方式
Jun 05 MySQL
mysql联合索引的使用规则
Jun 23 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
深入讲解数据库中Decimal类型的使用以及实现方法
Feb 15 MySQL
MySQL创建管理KEY分区
Apr 13 MySQL
为什么MySQL8新特性会修改自增主键属性
Apr 18 MySQL
MySQL 自动填充 create_time 和 update_time
May 20 MySQL
DQL数据查询语句使用示例
Dec 24 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
Aug 14 #MySQL
MySQL数据库查询之多表查询总结
Aug 05 #MySQL
分享很少见很有用的SQL功能CORRESPONDING
Aug 05 #MySQL
MySQL存储过程及语法详解
Aug 05 #MySQL
MySQL自定义函数及触发器
Aug 05 #MySQL
MySQL性能指标TPS+QPS+IOPS压测
Aug 05 #MySQL
Mysql中mvcc各场景理解应用
Aug 05 #MySQL
You might like
如何隐藏你的.php文件
2007/01/04 PHP
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
2019 Python最新面试题及答案16道题
2019/04/11 Python
解决python运行效率不高的问题
2020/07/20 Python
python处理写入数据代码讲解
2020/10/22 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
幼儿园长自我鉴定
2013/10/17 职场文书
大学四年规划书范文
2013/12/27 职场文书
初婚未育未抱养证明
2014/01/12 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
妇联主席先进事迹
2014/05/18 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
如何写好竞聘报告
2019/04/03 职场文书