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

Thêm tháng bị thiếu vào kết quả truy vấn

Tạo một bảng với tất cả các tháng, sau đó kết hợp nó với truy vấn của bạn. Dọc theo dòng của

select count(1) as count, months.month, year(published_at) as year
from months left join articles on months.month = month(published_at)
where published_at >= (now() - interval 1 year) and published_at <= now()
group by month(published_at)
order by year asc, month asc

Nó sẽ hiệu quả, nhưng nó sẽ trả lại cho bạn kết quả từ tháng 1 đến tháng 12 và sẽ không cho bạn nhiều năm. Một câu hỏi tương tự đã được hỏi trước đây, sau đó tôi đã đưa ra một truy vấn rất phức tạp, vì vậy nếu bạn không thấy điều gì đơn giản hơn, hãy xem xét:

Truy vấn giữa các ngày không hoạt động, bây giờ chúng ta đang ở trong một năm mới



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khớp các từ / hậu tố tương tự / biến thể trong MySQL

  2. Kết hợp (Merge) hai cột từ hai bảng trong một truy vấn SQL

  3. Lớp không có bảng hoặc tên bảng được chỉ định và không kế thừa từ một lớp được ánh xạ bảng hiện có

  4. MySqlException trên ExecuteReader bằng cách chọn UserID (PK)

  5. định dạng ngày mysql liên quan đến một quốc gia cụ thể