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

pilih tanggal sebelumnya, mysql

Karena Anda hanya membutuhkan satu kolom dari baris "sebelumnya", Anda dapat mencoba sesuatu seperti ini:

SELECT
  dte,
  id,
  value,
  (
    SELECT value
    FROM atable
    WHERE id = t.id
      AND dte < t.dte
    ORDER BY dte DESC
    LIMIT 1
  ) AS previous_value
FROM atable t

Jika Anda perlu menarik lebih banyak atribut "sebelumnya", berikut adalah pendekatan yang lebih canggih:

SELECT
  t1.dte,
  t1.id,
  t1.value,
  t2.dte,
  t2.value,
  …
FROM atable t1
  LEFT JOIN atable t2 ON t1.id = t2.id AND t1.dte > t2.dte
  LEFT JOIN atable t3 ON t1.id = t3.id AND t1.dte > t3.dte AND t3.dte > t2.dte
WHERE t3.id IS NULL

Pendekatan kedua menggunakan self-join segitiga serta anti-join to self. Pada dasarnya, itu bisa diterjemahkan seperti ini:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan id dari baris yang baru saja saya masukkan php/mysql

  2. Bagaimana saya bisa menambah kolom satu per satu di pemicu?

  3. Menjalankan kueri mysql dari phpmyadmin hanya mengubah 1 catatan. Mencoba ssh tetapi masalah yang sama

  4. kembalikan hitungan 0 dengan grup mysql dengan

  5. Bagaimana cara memperbarui sendiri PHP + MySQL CMS?