Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự khác biệt về MySQL giữa hai hàng của một Câu lệnh 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

Hoặc, bằng cách mô phỏng lag() hoạt động thông qua 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql error 1364 Trường không có giá trị mặc định

  2. Cách nhận bản ghi từ 7 ngày qua trong MySQL

  3. Thay thế cho mysql_real_escape_string mà không cần kết nối với DB

  4. Trình kích hoạt được lưu trữ của trình kích hoạt mysql đã được sử dụng bởi câu lệnh đã gọi trình kích hoạt được lưu trữ

  5. Cài đặt Ruby gem mysql2 không thành công