Du måste gruppera efter varje del som kan vara annorlunda. Så lägg till MONTH(Date)
och till och med YEAR(Date)
beroende på omfattningen av din fråga.
select DAY(Date), count(*) from Posts WHERE shopID != '' group by shopID, YEAR(Date), MONTH(Date), DAY(Date)