Poradové číslo netreba, ak stačí vedieť moje konkrétne poradie. Na jedno query si vytiahnem môj počet bodov (ten sa predpokladám niekde cachuje, nech sa nemusí stále počítať nanovo)
a potom stačí
Kód:
select email, sum(points) as p
from table
group by email
having sum(points) > 200
kde 200 je môj počet bodov. Počet riadkov, ktoré vráti tento select, je počet užívateľov, ktorí majú viac bodov než ja.
Typicky sa potom leaderboardy robia tak, že na jeden select vytiahnem prvú desiatku (tie viem očíslovať aj v php) a v druhom selecte moje poradové číslo. Zbytočne budem ťahať všetkých užívateľov, keď ma zaujíma jeden, alebo 10.
A ak chcem očíslovať všetkých, tak to viem tiež robiť až pri zobrazení, zbytočne si tým nemusím spomalovať select.