Mysql
 sql >> база данни >  >> RDS >> Mysql

Разлика в MySQL между два реда от оператор SELECT

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

Или чрез емулиране на lag() функция чрез MySql хакерство...

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL DATEDIFF() срещу TIMEDIFF():Каква е разликата?

  2. Как да получите датата от колона Datetime в MySQL

  3. скрипт за конвертиране на mysql dump sql файл във формат, който може да бъде импортиран в sqlite3 db

  4. Как да инсталирате MySQL Workbench на Windows

  5. Тестване на производителността с помощта на MySQLdump и MySQL Shell Utility