91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中LAG()函數和LEAD()函數如何使用

發布時間:2022-08-13 09:49:23 來源:億速云 閱讀:396 作者:iii 欄目:開發技術

這篇文章主要介紹“MySQL中LAG()函數和LEAD()函數如何使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MySQL中LAG()函數和LEAD()函數如何使用”文章能幫助大家解決問題。

一、窗口函數的基本用法

從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()函數如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通道| 大荔县| 芒康县| 资兴市| 麻城市| 兴文县| 佛山市| 赤壁市| 天台县| 留坝县| 瑞昌市| 西乌| 桐乡市| 开远市| 游戏| 彭泽县| 通许县| 南江县| 井研县| 南木林县| 元氏县| 高清| 汾西县| 东乌珠穆沁旗| 汤阴县| 镇平县| 莱芜市| 信阳市| 确山县| 苏尼特左旗| 芜湖县| 广昌县| 秀山| 凤凰县| 夏邑县| 东辽县| 手机| 岳阳市| 班玛县| 长沙县| 苗栗县|