MySQL SELECT 쿼리에서 행 간의 차이 계산
SELECT 쿼리에서 행 간의 차이를 계산하려면 다음 접근 방식을 고려하세요.
MAX() 하위 쿼리와 함께 LEFT JOIN 사용
LEFT JOIN을 사용하여 조건에 따라 행을 이전 행과 연결할 수 있습니다. 귀하의 경우, 각 날짜의 이전 행을 찾고 싶습니다:
SELECT mt1.ID, mt1.Kilometers, mt1.date, mt1.Kilometers - IFNULL(mt2.Kilometers, 0) AS number_km_since_last_date FROM myTable mt1 LEFT JOIN myTable mt2 ON mt2.Date = ( SELECT MAX(Date) FROM myTable mt3 WHERE mt3.Date < mt1.Date ) ORDER BY mt1.date
Lag() 함수 에뮬레이션 사용
MySQL에는 lag() 함수를 사용하면 사용자 정의 변수를 사용하여 이를 에뮬레이트할 수 있습니다.
SET @kilo=0; SELECT mt1.ID, mt1.Kilometers - @kilo AS number_km_since_last_date, @kilo := mt1.Kilometers Kilometers, mt1.date FROM myTable mt1 ORDER BY mt1.date
Results
두 방법 모두 원하는 출력을 생성합니다.
ID | Kilometers | date | car_id | car_driver | number_km_since_last_date 1 | 100 | 2012-05-04 | 1 | 1 | 0 2 | 200 | 2012-05-08 | 1 | 1 | 100 4 | 600 | 2012-05-16 | 1 | 1 | 400 3 | 1000 | 2012-05-25 | 1 | 1 | 400
위 내용은 MySQL SELECT 쿼리에서 행 간의 차이를 어떻게 계산할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!