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

Jumlah catatan Mysql berdasarkan bulan selama 12 bulan terakhir

Anda perlu melakukan outer join dengan tabel yang berisi baris untuk setiap bulannya. Dengan asumsi Anda tidak memiliki tabel seperti itu, Anda dapat membuatnya dengan cepat dengan kueri UNION yang dikodekan secara keras:

SELECT * FROM
    (SELECT DATE_FORMAT(now(), "%b") as Month
     UNION
     SELECT DATE_FORMAT(now() - INTERVAL 1 MONTH), "%b")
     UNION
     SELECT DATE_FORMAT(now() - INTERVAL 2 MONTH), "%b")
     UNION
     ...
     SELECT DATE_FORMAT(now() - INTERVAL 11 MONTH), "%b")) AS Months
LEFT JOIN (SELECT DATE_FORMAT(drives.timestamp, "%b") AS Month,
                 drives.timestamp,
                 DATE_FORMAT(drives.timestamp, "%d-%m-%Y %H:%i:%s") AS Exact_date,
                 drives.departure,
                 drives.destination,
                 drives.route,
                 CONCAT(drivers.name, " ", drivers.surname) as driver,
                 drivers.id as driver_id
                 FROM drives, drivers WHERE drives.driver = drivers.id 
                 AND drives.timestamp > DATE_SUB(now(), INTERVAL 12 MONTH)) data
ON Months.Month = data.Month
ORDER BY data.timestamp

Setiap bulan tanpa catatan akan memiliki satu baris dengan NULL di kolom data.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Butuh bantuan untuk membuat skrip pendaftaran/login pengguna khusus

  2. Pencarian pengguna di bidang basis data terenkripsi

  3. Memilih pertanyaan acak dari database MySQL; jawaban yang benar kacau

  4. Dapatkan catatan dengan nilai maksimal untuk setiap grup hasil SQL yang dikelompokkan

  5. Kolom tidak dikenal di 'memiliki klausa'