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

Bagaimana cara mengelompokkan berdasarkan minggu di MySQL?

Anda dapat menggunakan keduanya YEAR(timestamp) dan WEEK(timestamp) , dan gunakan kedua ekspresi ini di SELECT dan GROUP BY klausa.

Tidak terlalu elegan, tapi fungsional...

Dan tentu saja Anda juga dapat menggabungkan dua bagian tanggal ini dalam satu ekspresi, misalnya seperti

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

Sunting :Seperti yang Martin ditunjukkan Anda juga dapat menggunakan YEARWEEK(mysqldatefield) fungsi, meskipun outputnya tidak ramah mata seperti formula yang lebih panjang di atas.

Edit 2 [3 1/2 tahun kemudian!]:
YEARWEEK(mysqldatefield) dengan argumen kedua opsional (mode ) disetel ke 0 atau 2 mungkin merupakan cara terbaik untuk mengagregasi dengan lengkap minggu (yaitu termasuk untuk minggu yang mengangkangi 1 Januari), jika itu yang diinginkan. YEAR() / WEEK() pendekatan yang awalnya diusulkan dalam jawaban ini memiliki efek memecah data agregat untuk "mengangkang" tersebut minggu dalam dua:satu dengan tahun sebelumnya, satu dengan tahun baru.
Pemotongan bersih setiap tahun, dengan biaya memiliki hingga dua minggu parsial, satu di kedua ujungnya, sering diinginkan dalam akuntansi dll. dan untuk itu YEAR() / WEEK() pendekatan lebih baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Beberapa kueri dieksekusi di java dalam satu pernyataan

  2. Jenis MySQL ENUM vs tabel gabungan

  3. Impor CSV ke MySQL

  4. Cara membuat blog di PHP dan database MySQL - Backend

  5. ASP.NET menggunakan SqlConnection menghubungkan MySQL