Learn the outer connection.
Perform one of the following actions:
CREATE TABLE months ( mm char(2), name char(10) ); INSERT INTO months VALUES ('01', 'January'); INSERT INTO months VALUES ('02', 'Febuary'); INSERT INTO months VALUES ('03', 'March'); INSERT INTO months VALUES ('04', 'April'); INSERT INTO months VALUES ('05', 'May'); INSERT INTO months VALUES ('06', 'June'); INSERT INTO months VALUES ('07', 'July'); INSERT INTO months VALUES ('08', 'August'); INSERT INTO months VALUES ('09', 'September'); INSERT INTO months VALUES ('10', 'October'); INSERT INTO months VALUES ('11', 'November'); INSERT INTO months VALUES ('12', 'December');
And run this:
SELECT m.mm AS ord, m.name AS month, count(e.date) AS count FROM months m LEFT OUTER JOIN events e ON strftime('%m', e.date) = m.mm WHERE e.type='Birth' AND e.date <> '' GROUP BY month,ord ORDER BY ord;
source share