Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - temukan perbedaan antara baris tabel yang sama

Berikut adalah solusi tanpa variabel. Saya berasumsi Anda memiliki data initail Anda dalam tabel yang disebut thetable .

SELECT date, time, ip,
    result - IFNULL( (
        SELECT MAX( result ) 
        FROM thetable
        WHERE ip = t1.ip
        AND ( date < t1.date
            OR date = t1.date AND time < t1.time )
    ) , 0) AS diff
FROM thetable AS t1
ORDER BY ip, date, time

Di sini kita mendapatkan nilai sebelumnya dengan subselect (result maksimal dari stempel waktu sebelumnya dari ip . yang sama ). IFNULL memberi kita 0 jika ini adalah nilai pertama, sehingga hasil awal ditampilkan dengan benar.

Saya juga merekomendasikan untuk menambahkan indeks berikut ke thetable :

CREATE INDEX sort1 ON thetable (ip, date, time);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Otentikasi dengan kata sandi lama tidak lagi didukung, gunakan kata sandi gaya 4.1

  2. Mysql:tidak mungkin diperhatikan setelah membaca tabel const

  3. Cara Melihat Variabel Status dan Sistem di MySQL Workbench menggunakan GUI

  4. Bagaimana cara membuang hanya tabel tertentu dari MySQL?

  5. MariaDB Warning:'[email protected]' memiliki keduanya ... Kata sandi akan diabaikan