Нужно взять топ-10 пользователей с самыми высокими баллами, для этого
SQLite запрос: SELECT username FROM users ORDER BY balli DESC LIMIT 10
. Этим запросом получишь первые 10 пользователей по баллам.
Как взять на каком месте юзер по баллам? Чтобы каждый раз не растрачивать ресурсы вычислительной техники, лучше всего вести отдельную таблицу с такими данными,
обновляя её всякий раз, когда порядок лидерства будет изменяться.
Если этого не хочется (или проект уже запущен, и нельзя изменить) нужно каждый раз брать всю таблицу пользователей с сортировкой по максимальному ID (тот же запрос из первой части ответа, только лимит порежь) , и прогонять по циклу
for, пока не найдешь нужного пользователя.
Представить только, что если там не 10, не 100 а
100000 пользователей, вычислительная техника сойдет с ума, еще если представить
20-30 таких запросов одновременно.