Sie müssen nach jedem Teil gruppieren, das möglicherweise anders ist. Fügen Sie also MONTH(Date)
hinzu und sogar YEAR(Date)
abhängig vom Umfang Ihrer Anfrage.
select DAY(Date), count(*) from Posts WHERE shopID != '' group by shopID, YEAR(Date), MONTH(Date), DAY(Date)