SELECT
A.TYPE,
SUBSTRING_INDEX(GROUP_CONCAT(A.CITY ORDER BY A.TYPE,A.NUM DESC),',',50) AS CITYRANK,
SUBSTRING_INDEX(GROUP_CONCAT(A.NUM ORDER BY A.TYPE,A.NUM DESC),',',50) AS NUMRANK
FROM (SELECT TYPE,CITY,COUNT(TIME) AS NUM
FROM tableName
GROUP BY TYPE,CITY
) A
GROUP BY A.TYPE;