sql >> Database >  >> RDS >> Mysql

MySQL-verschil tussen twee rijen van een SELECT-instructie

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

Of door een lag() . te emuleren functioneren via 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



  1. Transactiereplicatie maken

  2. converteer Excel Date Serienummer naar Normale Datum

  3. Hoe accenten en alle tekens <> a..z in sql-server te verwijderen?

  4. MySQL SELECT alleen geen null-waarden