MySQL中LAG()函数和LEAD()函数的使用
生活随笔
收集整理的這篇文章主要介紹了
MySQL中LAG()函数和LEAD()函数的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、窗口函數的基本用法
從MySQL8之后才開始支持窗口函數
<窗口函數> OVER ([PARTITION BY <用于分組的列>] ORDER BY <用于排序的列>)二、LAG()和LEAD()函數介紹
三、數據準備(建表sql在最后)
1、LAG()函數:統計與前一天相比溫度更高的日期Id
我們先按照日期進行排序,然后找到當天比前一天溫度高的id;使用lag()函數,將溫度向后推一天。
SELECTid,date,temperature,LAG( temperature, 1, 0 ) OVER ( ORDER BY date ) AS temp FROMweather;查詢結果:
然后將temperature大于temp 并且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的數據挑選出來
查詢結果:
四、建表數據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()函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教你如何暴力破解wifii密码
- 下一篇: 电脑网线,电脑网线插了没反应怎么回事?如