SELECT year_2011.invoice_month, year_2011, year_2012, year_2013 FROM ( SELECT EXTRACT(MONTH FROM CAST(invoice_date AS date)) AS invoice_month, COUNT(invoice_id) AS year_2011 FROM invoice AS i WHERE EXTRACT(YEAR FROM CAST(invoice_date AS date)) = 2011 GROUP BY 1 ORDER BY 2 DESC ) AS year_2011 LEFT JOIN ( SELECT EXTRACT(MONTH FROM CAST(invoice_date AS date)) AS invoice_month, COUNT(invoice_id) AS year_2012 FROM invoice AS i WHERE EXTRACT(YEAR FROM CAST(invoice_date AS date)) = 2012 GROUP BY 1 ORDER BY 2 DESC ) AS year_2012 ON year_2011.invoice_month=year_2012.invoice_month LEFT JOIN ( SELECT EXTRACT(MONTH FROM CAST(invoice_date AS date)) AS invoice_month, COUNT(invoice_id) AS year_2013 FROM invoice AS i WHERE EXTRACT(YEAR FROM CAST(invoice_date AS date)) = 2013 GROUP BY 1 ORDER BY 2 DESC ) AS year_2013 ON year_2011.invoice_month=year_2013.invoice_month