Simba, Я на PHP это делаю) Там где идет обновление навыка, если навык повысился на единицу, то пересчитываем позиции игроков и выбираем лучшую, записываем в базу. Короче миллисекунды. Это просто описание задачи простецкое и только ради интереса.
А вообще подзапрос не нужен. Просто вместо того, чтобы сравнивать алиасы из подзапроса, нужно сравнивать сами суммы навыков в GREATEST c суммой навыков для позиции и давать уже это значение. И тогда запрос для всей таблицы в 100к выполняется за 0,002 сек)). Только сам запрос выходит на полторы сотни строк.