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

Nhóm theo tuần, làm thế nào để có được tuần trống?

SQL không thể trả về các hàng không tồn tại trong một số bảng. Để đạt được hiệu quả bạn muốn, bạn sẽ cần một bảng Tuần (Tuần không INT) với một hàng cho mỗi tuần có thể trong năm (IIRC, là 53 hoặc 54 tuần có thể, tùy thuộc vào cách bạn tính).

Sau đó, hãy THAM GIA bảng này vào kết quả thông thường của bạn với THAM GIA NGOÀI TRỜI để nhận thêm tuần.

SELECT DATE_FORMAT(date, 'Y:%X - Week:%V') AS regweek, COUNT(date) as number 
    FROM YourTable RIGHT OUTER JOIN Weeks ON WEEK(YourTable.date) = Weeks.WeekNo

[Cập nhật]:Lưu ý người dùng COUNT (ngày) thay vì COUNT (*). SQL sẽ không bao gồm các giá trị NULL trong cột ngày khi thêm COUNT. Vì các tuần còn thiếu sẽ không có bất kỳ ngày nào trong đó, điều này chính xác sẽ cung cấp cho bạn 0 sự kiện cho các tuần đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có hợp lý không khi sử dụng một chỉ mục sẽ có bản số thấp?

  2. tomcat7:Không thể tải lớp trình điều khiển JDBC [com.mysql.jdbc.Driver]

  3. Truy vấn Mysql không sử dụng chỉ mục khi có các biến trong WHERE

  4. Sự khác biệt giữa utf8_general_ci và utf8_unicode_ci là gì?

  5. php mysql_connect Cảnh báo tắt