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

Query MySQL dengan hitungan dan grup berdasarkan

Dengan asumsi bahwa tanggal Anda adalah datetime yang sebenarnya kolom:

SELECT MONTH(date), YEAR(date), id_publisher, COUNT(*)
FROM raw_occurrence_record
GROUP BY MONTH(date), YEAR(date), id_publisher

Anda dapat menggabungkan bulan &tahun Anda seperti ini:

SELECT CONCAT(MONTH(date), '/', YEAR(date)) AS Month, id_publisher, COUNT(*)
FROM raw_occurrence_record
GROUP BY MONTH(date), YEAR(date), id_publisher

Untuk menemukan bulan di mana tidak ada catatan, Anda memerlukan tabel tanggal. Jika Anda tidak dapat membuatnya, Anda dapat UNION ALL tabel kalender seperti ini:

SELECT a.year, a.month, b.id_publisher, COUNT(b.id_publisher) AS num
FROM
  (SELECT 11 AS month, 2012 AS year
   UNION ALL
   SELECT 12, 2012
   UNION ALL
   SELECT 1, 2013
   UNION ALL
   SELECT 2, 2013) a
LEFT JOIN raw_occurence_record b
  ON YEAR(b.date) = a.year AND MONTH(b.date) = a.month
GROUP BY a.year, a.month, b.id_publisher

Lihat demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pencarian teks lengkap MySql di PHP menggunakan string yang mengandung kata kunci

  2. Kesalahan umum:1366 Nilai integer salah dengan pembaruan Doctrine 2.1 dan Zend Form

  3. Tidak dapat menginstal paket mysqlclient Python di Windows

  4. Hapus Menggunakan Beberapa Tabel dan ulangi tabel di subquery

  5. php:sesi vs. database