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

Kelompokkan berdasarkan minggu, bagaimana cara mendapatkan minggu kosong?

SQL tidak dapat mengembalikan baris yang tidak ada di beberapa tabel. Untuk mendapatkan efek yang Anda inginkan, Anda memerlukan tabel Minggu (WeekNo INT) dengan satu baris per minggu yang memungkinkan dalam setahun (yang, IIRC, adalah 53 atau 54 kemungkinan minggu, tergantung cara Anda menghitung).

Kemudian, GABUNG tabel ini ke hasil reguler Anda dengan OUTER JOIN untuk mendapatkan minggu tambahan yang ditambahkan.

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

[Pembaruan]:Perhatikan pengguna COUNT(tanggal) daripada COUNT(*). SQL tidak akan menyertakan nilai NULL di kolom tanggal saat menambahkan COUNT. Karena minggu-minggu yang hilang tidak akan memiliki tanggal di dalamnya, ini akan memberi Anda 0 acara dengan benar untuk minggu-minggu itu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan Mysqli bind_param dengan kolom tanggal dan waktu?

  2. Gunakan Kunci Utama Gabungan sebagai Kunci Asing

  3. tidak dapat memulai MySql di Mac OS 10.6 Snow Leopard

  4. Pesan berdasarkan 3 karakter terakhir

  5. Tempat menyimpan kredensial basis data dengan aman di dalam situs web PHP