rank
という単語 予約語 MySql8で。
したがって、別のエイリアス名を使用するか、エイリアス名にバックティックを付けます。
また、MySql 8では、ウィンドウ関数を使用できます。 a>
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;