一、窗口函数的基本用法

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

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

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

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

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

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

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

SELECTid,date,temperature,LAG( temperature, 1, 0 ) OVER ( ORDER BY date ) AS temp
FROMweather;

查询结果:

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

SELECTid
FROM(SELECT id, date, temperature, LAG( temperature, 1, 0) OVER ( ORDER BY date ) AS temp FROM weather) tmp
WHEREtemperature > temp AND temp != 0;

结果如下:

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

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

SELECTid,date,temperature,LEAD( temperature, 1, 0 ) OVER ( ORDER BY date ) AS temp
FROMweather;

查询结果:

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

SELECTid
FROM( SELECT id, date, temperature, LEAD( temperature, 1, 0 ) OVER ( ORDER BY date ) AS temp FROM weather ) tmp
WHEREtemperature > temp AND temp != 0;

查询结果:

四、建表数据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()函数的使用相关推荐

  1. LAG函数和LEAD函数(案例详解)

    在SQL的开窗函数使用中,LAG函数和LEAD函数出现频率还是很高的.这里博主将这两个函数的用法结合案例做一下介绍. 一.函数介绍 LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 第 ...

  2. mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客

    不常用:MySQL中的LOCATE和POSITION函数 LOCATE(substr,str) POSITION(substr IN str) 返回子串 substr 在字符串 str 中第一次出现的 ...

  3. mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数

    <Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...

  4. mysql 排名_学会在MySQL中实现Rank高级排名函数,所有取前几名问题全部解决.

    MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名.尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名 ...

  5. mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法

    不常用:MySQL中的LOCATE和POSITION函数 LOCATE(substr,str) POSITION(substr IN str) 返回子串 substr 在字符串 str 中第一次出现的 ...

  6. Mysql中当前日期(时间)函数总结

    Mysql中当前日期(时间)函数总结 select now():获取当前日期(包含时分秒) 2.Select date_formate(now(),"格式化") select da ...

  7. mysql rank_在MySQL中实现Rank高级排名函数

    MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名.尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名 ...

  8. 在MySQL中实现Rank高级排名函数

    在MySQL中实现Rank高级排名函数 前言 用例表 1.在MySQL中实现普通排名 2.在MySQL中实现并列连续序号排名 3.在MySQL中实现并列非连续序号排名 4.随机获得一条数据 5.判断数 ...

  9. rank()函数 mysql_在MySQL中实现Rank高级排名函数

    在MySQL中实现Rank高级排名函数 MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名.尽管如此,可不要小瞧基础而简单的查询语句,我们可 ...

最新文章

  1. NVIDIA Jetson NX开发板在U盘挂载的时候出现:error mounting unknown filesystem type ‘exfat‘错误
  2. struts2教程(3)--请求参数处理
  3. 【qduoj】C语言_凯撒密码
  4. 后BERT时代:15个预训练模型对比分析与关键点探究
  5. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)
  6. 使用深度学习框架 Tensorflow 实现线性回归 (Linear Model)
  7. java使用内部类的好处及其初始化
  8. mysql数据库执行事务日志_第十章 MySQL事务及其日志介绍
  9. oracle flex asm ceph,关于12c flex cluster及 flex asm疑问
  10. 面试题——股票利益最大化
  11. pythonnumpy详解_Python精讲Numpy基础,大牛笔记详细解释
  12. vue怎么实现右键二级菜单_vue中如何自定义右键菜单详解
  13. 非参数统计之局部多项式回归
  14. Vijos P1423 最佳路线
  15. stm8s103k3 周期 捕获_基于stm8s103k3单片机串口UART的正确使用分享
  16. 关于解决windows10和ubuntu18.04.2 双系统时win10时间不对的问题
  17. 纯技术上来说,《看门狗》里的各种骇客技术有可能实现吗?
  18. 拉勾网的职位信息爬取(详细)
  19. 网站建设需要多少钱?与什么有关系?
  20. ICP许可证怎么申请?

热门文章

  1. 大数据时代时代舍恩伯格书资源_疫情宅家,这些大数据书籍可以好好读读
  2. C# Environment.StackTrace、StackFrame、Tirm的使用技巧
  3. Clickhouse Kafka Engin参数记录
  4. IT工科女硕士-求职总结帖
  5. AGC012 - E: Camel and Oases
  6. runtime 黑魔法
  7. 【Free5GC】环境安装搭建
  8. 【Linux学习】Linux free 命令学习
  9. scp向阿里云服务器上传文件
  10. Weisfeiler-Lehman(WL)算法