MySQL difference between two rows of a SELECT Statement

后端 未结 5 1044
执笔经年
执笔经年 2020-11-27 20:53

I am trying to make the difference of two rows in an mysql database.
I have this table containing ID, kilometers, date, car_id, car_driver etc...
Since I don\'t alwa

5条回答
  •  隐瞒了意图╮
    2020-11-27 21:35

    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
    

    Sql Fiddle

    Or, by emulating a lag() function through MySql hackiness...

    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
    

    Sql Fiddle

提交回复
热议问题