Pengumpulan Mengikut Minggu dalam MySQL: Fungsi YEARWEEK
MySQL menawarkan fungsi YEARWEEK yang boleh digunakan untuk mengumpulkan data mengikut minggu. Fungsi ini mengembalikan rentetan yang mewakili nombor tahun dan minggu untuk tarikh tertentu. Contohnya:
SELECT YEARWEEK('2023-03-08')
mengembalikan '202309'. Ini menunjukkan bahawa 8 Mac 2023, jatuh pada minggu ke-9 2023.
Fungsi YEARWEEK termasuk argumen kedua pilihan yang menentukan mod permulaan minggu. Lalai ialah 1, yang menunjukkan bahawa minggu bermula pada hari Ahad. Mod 0 menunjukkan bahawa minggu bermula pada hari Isnin dan mod 2 menunjukkan bahawa minggu bermula pada hari Sabtu.
Untuk mengumpulkan data mengikut minggu menggunakan fungsi YEARWEEK:
SELECT YEARWEEK(date, 0), COUNT(*) FROM table GROUP BY YEARWEEK(date, 0)
Pertanyaan ini mengumpulkan baris dalam 'jadual' mengikut minggu dalam setahun, dengan mengandaikan minggu bermula pada hari Isnin. Fungsi 'COUNT(*)' mengira bilangan baris dalam setiap minggu.
Menggabungkan Fungsi TAHUN dan MINGGU
Pendekatan alternatif kepada pengumpulan mengikut minggu ialah menggunakan gabungan fungsi TAHUN dan MINGGU. Ini boleh berguna jika anda mahukan lebih kawalan ke atas logik kumpulan. Contohnya, pertanyaan berikut mengumpulkan data mengikut tahun dan nombor minggu, tanpa mengira mod mula minggu:
SELECT YEAR(date), WEEK(date), COUNT(*) FROM table GROUP BY YEAR(date), WEEK(date)
EDIT:
Seperti yang dinyatakan oleh Martin dalam komen, anda juga boleh menggunakan formula berikut untuk mengumpulkan mengikut minggu:
CONCAT(YEAR(date), '/', WEEK(date))
Pendekatan ini mungkin lebih menarik perhatian daripada menggunakan Fungsi YEARWEEK.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengumpulkan data mengikut minggu dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!