यह मानते हुए कि आपकी तिथि एक वास्तविक datetime
है कॉलम:
SELECT MONTH(date), YEAR(date), id_publisher, COUNT(*)
FROM raw_occurrence_record
GROUP BY MONTH(date), YEAR(date), id_publisher
आप अपने महीने और साल को इस तरह जोड़ सकते हैं:
SELECT CONCAT(MONTH(date), '/', YEAR(date)) AS Month, id_publisher, COUNT(*)
FROM raw_occurrence_record
GROUP BY MONTH(date), YEAR(date), id_publisher
उन महीनों को खोजने के लिए जहां कोई रिकॉर्ड नहीं हैं, आपको एक तिथि तालिका की आवश्यकता होगी। यदि आप एक नहीं बना सकते हैं, तो आप UNION ALL
कर सकते हैं इस तरह की कैलेंडर तालिका:
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