MySQL에서 LAG() 함수와 LEAD() 함수를 사용하는 방법

王林
풀어 주다: 2023-05-30 21:19:12
앞으로
3662명이 탐색했습니다.

1. 윈도우 함수의 기본 사용법

윈도우 함수는 MySQL8

<窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>)
로그인 후 복사

2부터 지원되었습니다. LAG() 및 LEAD() 함수 소개

  • lag 및 리드는 각각 앞으로 및 뒤로를 의미합니다

  • 여기 세 가지 매개변수입니다. expression: 열 이름; offset: 오프셋; default_value: 기록 창 이상의 기본값(기본값은 null, 0으로 설정 가능)

3. 데이터 준비(마지막에 테이블 sql 생성) )

MySQL에서 LAG() 함수와 LEAD() 함수를 사용하는 방법

1. LAG() 함수: 전날보다 기온이 높은 날짜의 ID를 계산합니다.

먼저 날짜별로 정렬한 다음 지연을 사용하여 오늘의 기온이 높은 날짜를 찾습니다. () 기능, 온도를 하루 뒤로 미룹니다.

select id, date, temperature, LAG(temperature, 1, 0) OVER (order by date) as temp FROM weather
로그인 후 복사

쿼리 결과:

MySQL에서 LAG() 함수와 LEAD() 함수를 사용하는 방법

그런 다음 온도가 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를 찾습니다.

select id, date, temperature, LEAD(temperature, 1, 0) OVER (order by date) as temp FROM weather
로그인 후 복사

쿼리 결과:

MySQL에서 LAG() 함수와 LEAD() 함수를 사용하는 방법

그런 다음 온도가 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() 함수를 사용하는 방법

4. 테이블 데이터 생성 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, &#39;2022-08-01&#39;, 20);
INSERT INTO `weather` VALUES (2, &#39;2022-08-02&#39;, 25);
INSERT INTO `weather` VALUES (3, &#39;2022-08-03&#39;, 22);
INSERT INTO `weather` VALUES (4, &#39;2022-08-04&#39;, 22);
INSERT INTO `weather` VALUES (5, &#39;2022-08-05&#39;, 26);
INSERT INTO `weather` VALUES (6, &#39;2022-08-06&#39;, 28);
INSERT INTO `weather` VALUES (7, &#39;2022-08-07&#39;, 20);

SET FOREIGN_KEY_CHECKS = 1;
로그인 후 복사

위 내용은 MySQL에서 LAG() 함수와 LEAD() 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿