Try this
select distinct l.city, p.name as promotion_name, count(s.id)
from location l, promotion p, sale s
where s.locationID=l.id and s.promotionID=p.id
and p.name= 'super sale' or p.name='best sale'
Group By l.city, p.name
If you want each city's sale then no need to add in where condition