Devi raggruppare per ogni pezzo che potrebbe essere diverso. Quindi aggiungi MONTH(Date)
e anche YEAR(Date)
a seconda dell'ambito della tua richiesta.
select DAY(Date), count(*) from Posts WHERE shopID != '' group by shopID, YEAR(Date), MONTH(Date), DAY(Date)