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

Kelompokkan menurut hari dan masih tampilkan hari tanpa baris?

MySQL tidak akan membuat baris untuk Anda, jadi jika data tidak ada, secara alami tidak akan ditampilkan.

Anda dapat membuat tabel kalender, dan bergabung di dalamnya,

create table calendar (
    day date primary key,
);

Isi tabel ini dengan tanggal (mudah dengan prosedur tersimpan, atau hanya beberapa skrip umum), hingga sekitar tahun 2038 dan sesuatu yang lain kemungkinan akan merusak unitl yang menjadi masalah.

Permintaan Anda kemudian menjadi mis.

SELECT logTime, COUNT(*) 
  FROM calendar cal left join logs l on cal.day = l.logTime 
WHERE day >= '2011-02-01' AND day <= '2011-02-04' GROUP BY day;

Sekarang, Anda dapat memperluas tabel kalender dengan kolom lain yang memberi tahu Anda bulan, tahun, minggu, dll. sehingga Anda dapat dengan mudah menghasilkan statistik untuk unit waktu lainnya. (dan puritan mungkin berpendapat bahwa tabel kalender akan memiliki kunci utama bilangan bulat id yang dirujuk oleh tabel log alih-alih tanggal)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada implementasi CachedRowSet yang bagus selain yang dimiliki Sun?

  2. pesanan mysql dengan serikat sepertinya tidak berfungsi

  3. Bagaimana cara menguji pernyataan Pembaruan SQL sebelum menjalankannya?

  4. Saya perlu auto_increment bidang di MySQL yang bukan kunci utama

  5. JIKA Kondisi Lakukan Query, Else Lakukan Query Lainnya