Debe agrupar por cada pieza que pueda ser diferente. Así que agrega MONTH(Date)
e incluso YEAR(Date)
dependiendo del alcance de su consulta.
select DAY(Date), count(*) from Posts WHERE shopID != '' group by shopID, YEAR(Date), MONTH(Date), DAY(Date)