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

daftar tanggal mysql dengan hitungan bahkan jika tidak ada data pada tanggal tertentu

Dengan asumsi postid . Anda s bersebelahan di tabel Anda, maka kueri ini:

SELECT
  DATE_FORMAT(b.date, '%Y-%m-%d') date,
  COUNT(c.postid)
FROM
(
  SELECT
    (SELECT MAX(date) FROM ex) + INTERVAL 3 DAY - INTERVAL a.postid DAY AS date
  FROM
    ex a
) b
LEFT JOIN
  ex c ON c.date = b.date
GROUP BY
  b.date
ORDER BY
  b.date

menghasilkan:

date    COUNT(c.postid)
2012-01-01  2
2012-01-02  2
2012-01-03  0
2012-01-04  2
2012-01-05  1
2012-01-06  0
2012-01-07  0

Lihat http://sqlfiddle.com/#!2/2cf8d/2

Jika postid . Anda s tidak bersebelahan, maka Anda dapat menggunakan ids tabel id yang berdekatan:

SELECT
  DATE_FORMAT(b.date, '%Y-%m-%d') date,
  COUNT(c.postid)
FROM
(
  SELECT
    (SELECT MAX(date) FROM ex) + INTERVAL 3 DAY - INTERVAL a.id DAY AS date
  FROM
    ids a
) b
LEFT JOIN
  ex c ON c.date = b.date
GROUP BY
  b.date
ORDER BY
  b.date DESC
LIMIT 7

Lihat http://sqlfiddle.com/#!2/13035/1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan hasil dengan membandingkan dua tabel dengan kolom yang identik

  2. Mengapa contoh pilih untuk pembaruan ini berfungsi?

  3. MySQL Pilih baris pada kemunculan pertama dari setiap nilai unik

  4. Cara membuat database di MySQL

  5. PHP PDO:rangkaian karakter, setel nama?