Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

danh sách ngày mysql với số lượng ngay cả khi không có dữ liệu vào ngày cụ thể

Giả sử postid của bạn s nằm liền kề trong bảng của bạn, sau đó truy vấn sau:

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

sản xuất:

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

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

Nếu postid của bạn s không liền nhau, khi đó bạn có thể sử dụng ids bảng id liền kề:

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

Xem 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. Làm cách nào để hợp nhất hai chuỗi số được phân tách bằng dấu phẩy trong MySQL?

  2. Có cách nào để chọn từ bảng MySQL nơi một trường kết thúc bằng ký tự / số nhất định không?

  3. Cách cài đặt WordPress:Phần mềm máy chủ

  4. Di chuyển Laravel:Xóa onDelete ('cascade') khỏi khóa ngoại hiện có

  5. Hiệu suất MySQL:Giới thiệu về THAM GIA trong SQL