SELECT city, any(count) as count, GROUP_CONCAT(vendor_and_count) FROM (
SELECT city, COUNT(city) AS count FROM ctable GROUP BY city
) LEFT JOIN (
SELECT city, CONCAT(vendor, " (", COUNT(*), ")")) as vendor_and_count FROM ctable GROUP BY city, vendor
) USING city
GROUP BY city
SELECT city, (SELECT count(*) from ctable c WHERE c.city = city) as count, CONCAT(vendor, " (", COUNT(*), ")")) as vendor_and_count FROM ctable GROUP BY city, vendor
SELECT city, CONCAT(vendor, COUNT(*))) as vendor_and_count FROM ctable GROUP BY city, vendor