Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Różnica MySQL między dwoma wierszami instrukcji 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

Lub emulując lag() działać poprzez hackiness 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. Procedura zapisana z opcjonalnymi parametrami WHERE

  2. Oblicz percentyl w MySQL na podstawie sum

  3. Jak wybrać n-ty wiersz w tabeli bazy danych SQL?

  4. Dodaj klucz obcy do istniejącej tabeli

  5. Porównanie Oracle MySQL, Percona Server i MariaDB