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

Làm thế nào để nhóm theo tuần trong MySQL?

Bạn có thể sử dụng cả YEAR(timestamp) WEEK(timestamp) và sử dụng cả hai biểu thức này trong SELECTGROUP BY mệnh đề.

Không quá trang nhã, nhưng có chức năng ...

Và tất nhiên, bạn cũng có thể kết hợp hai phần ngày này trong một biểu thức duy nhất, tức là một cái gì đó như

SELECT CONCAT(YEAR(timestamp), '/', WEEK(timestamp)), etc...
FROM ...
WHERE ..
GROUP BY CONCAT(YEAR(timestamp), '/', WEEK(timestamp))

Chỉnh sửa :Như Martin đã chỉ ra bạn cũng có thể sử dụng YEARWEEK(mysqldatefield) , mặc dù đầu ra của nó không thân thiện với mắt như công thức dài hơn ở trên.

Chỉnh sửa 2 [3 năm rưỡi sau!]:
YEARWEEK(mysqldatefield) với đối số thứ hai tùy chọn ( mode ) được đặt thành 0 hoặc 2 có lẽ là cách tốt nhất để tổng hợp bằng hoàn thành tuần (nghĩa là bao gồm cả những tuần kéo dài từ ngày 1 tháng 1), nếu đó là điều mong muốn. YEAR() / WEEK() cách tiếp cận được đề xuất ban đầu trong câu trả lời này có tác dụng tách dữ liệu tổng hợp cho "phân tầng" như vậy hai tuần trong hai tuần:một với năm cũ, một với năm mới.
Cắt giảm hàng năm, với chi phí là có tới hai tuần một phần, một ở hai cuối, thường được mong muốn trong kế toán, v.v. và cho rằng YEAR() / WEEK() cách tiếp cận tốt hơ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. Làm thế nào để xây dựng một ứng dụng flask xung quanh một cơ sở dữ liệu đã có sẵn?

  2. Câu lệnh chuẩn bị sẵn trong PHP PDO - Truy vấn LIKE trong MySQL

  3. Nâng cao tiêu chuẩn về quản lý MySQL, MariaDB, PostgreSQL &MongoDB

  4. Một kết nối cơ sở dữ liệu có nên luôn mở hay chỉ được mở khi cần thiết?

  5. Cách xuất cơ sở dữ liệu bằng dòng lệnh