, MySQL , ROW_NUMBER() RANK(). , ROW_NUMBER() " 25" . ROW_NUMBER().
, . , .
, "-25" . , , "-25" .
, ... " " (a) "-25" (t) :
SELECT a.*
FROM (
SELECT m.team AS team
, SUM( r.points ) AS points
, SUM(IF( r.rank=1 ,1,0)) AS wins
, SUM(IF( r.rank<6 ,1,0)) AS t5
, SUM(IF( r.rank<11 ,1,0)) AS t10
, SUM(IF( r.rank<21 ,1,0)) AS t20
, ROUND(AVG( r.points ),2) AS ppr
, ROUND(AVG( r.rank ),2) AS avg_finish
, MIN( r.rank ) AS best
FROM members m
LEFT
JOIN results r
ON r.team_id = m.m_id
GROUP BY m.team
) a
LEFT
JOIN ( SELECT tm.team AS team
, SUM(IF( tr.rank=1 ,1,0)) AS wins
FROM members tm
LEFT
JOIN results tr
ON tr.team_id = tm.m_id
GROUP BY tm.team
ORDER
BY SUM( tr.points ) DESC
, SUM(IF( tr.rank=1 ,1,0)) DESC
, tr.team_id DESC
LIMIT 25
) t
ON t.team = ta.team
ORDER
BY t.wins DESC
, a.points DESC
, a.team DESC
"a" - , .
"t" , ORDER BY LIMIT, 25 . ORDER BY LIMIT, 25 , . ( ORDER BY, ... , 25- 26- , ...
, a " 25", . ( , , t, NULL t... i.e. t.wins NULL, ORDER BY .
wins t. , , t, NULL.
ORDER
BY IF(t.team IS NULL,NULL,a.wins) DESC
, a.points DESC
, a.team DESC