Vous devez regrouper par chaque pièce qui pourrait être différente. Ajoutez donc MONTH(Date)
et même YEAR(Date)
en fonction de la portée de votre requête.
select DAY(Date), count(*) from Posts WHERE shopID != '' group by shopID, YEAR(Date), MONTH(Date), DAY(Date)