La palabra rank
es una palabra reservada en MySql 8.
Por lo tanto, use otro nombre de alias o haga una marca inversa en el nombre de alias.
Y en MySql 8 puede usar funciones de ventana
SELECT
mapname,
DENSE_RANK() OVER (PARTITION BY mapname, zonegroup, steamid, style ORDER BY runtime DESC) AS `rank`,
COUNT(*) OVER (PARTITION BY mapname, zonegroup, steamid, style) AS total
FROM ck_bonus
WHERE steamid = '%s' AND style = %i;