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

Cara Mengelompokkan Berdasarkan Tahun dan Bulan di MySQL

Kueri ini akan menghitung semua baris, dan juga hanya akan menghitung baris di mana Attribute bukan nol, mengelompokkan menurut tahun dan bulan dalam baris:

SELECT
  Year(`date`),
  Month(`date`),
  Count(*) As Total_Rows,
  Count(`Attribute`) As Rows_With_Attribute
FROM your_table
GROUP BY Year(`date`), Month(`date`)

(ini karena Count(*) menghitung semua baris, Count(Attribute) menghitung semua baris di mana Atribut bukan null)

Jika Anda membutuhkan tabel Anda di PIVOT, Anda dapat menggunakan ini untuk menghitung hanya baris di mana Atribut bukan null:

SELECT
  Year(`date`),
  Count(case when month(`date`)=1 then `Attribute` end) As Jan,
  Count(case when month(`date`)=2 then `Attribute` end) As Feb,
  Count(case when month(`date`)=3 then `Attribute` end) As Mar,
  ...
FROM your_table
GROUP BY Year(`date`)

Dan ini untuk menghitung semua baris:

SELECT
  Year(`date`),
  Count(case when month(`date`)=1 then id end) As Jan,
  Count(case when month(`date`)=2 then id end) As Feb,
  Count(case when month(`date`)=3 then id end) As Mar,
  ...
FROM your_table
GROUP BY Year(`date`)

(atau, alih-alih menghitung id, Anda dapat menggunakan Sum(Month( .) tanggal)=1) seperti dalam jawaban kander). Tentu saja Anda dapat menggabungkan kedua kueri menjadi ini:

SELECT
  Year(`date`),
  Count(case when month(`date`)=1 then id end) As Jan_Tot,
  Count(case when month(`date`)=1 then `Attribute` end) As Jan_Attr,
  Count(case when month(`date`)=2 then id end) As Feb_Tot,
  Count(case when month(`date`)=2 then `Attribute` end) As Feb_Attr,
  Count(case when month(`date`)=3 then id end) As Mar_Tot,
  Count(case when month(`date`)=3 then `Attribute` end) As Mar_Attr,
  ...
FROM your_table
GROUP BY Year(`date`)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa jdbcTemplate.batchUpdate() Spring begitu lambat?

  2. Menambahkan Detik ke datetime di MySQL

  3. Pemecahan Masalah Campuran ilegal kesalahan susunan di mysql

  4. MySQL bagaimana Anda memotong tabel dalam prosedur tersimpan?

  5. Memasukkan waktu ke database mysql di java