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

Bagaimana cara menghitung jumlah kolom dalam tabel SQL untuk tanggal tertentu dan menambal nilai yang terlewat dengan nilai tanggal terdekat sebelumnya?

Itu tidak cantik, karena harus menggabungkan empat salinan tabel Anda ke dirinya sendiri, yang bisa memukul segala macam masalah kinerja (saya sangat menyarankan Anda untuk memiliki indeks di id dan date )... tapi ini akan berhasil:

SELECT   y.report_date, SUM(x.value)
FROM     mytable AS x
  NATURAL JOIN (
    SELECT   a.id, b.date AS report_date, MAX(c.date) AS date
    FROM     (SELECT DISTINCT id   FROM mytable) a JOIN
             (SELECT DISTINCT date FROM mytable) b JOIN
             mytable AS c ON (c.id = a.id AND c.date <= b.date)
    GROUP BY a.id, b.date
 ) AS y
GROUP BY y.report_date

Lihat di sqlfiddle .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perlu Mengonversi Kolom menjadi Baris di MYSQL

  2. Node.js MySQL - Kesalahan:sambungkan ECONNREFUSED

  3. Cara Menggunakan JDBC Untuk Menghubungkan Database MySql

  4. Cara mengaktifkan mesin FEDERATED di XAMPP

  5. Bagaimana cara menggunakan array nilai dari PHP dalam klausa 'IN' dari kueri mysql?