select * from games order by w;
+--------+------+------+------+------+
| name | p | w | d | l |
+--------+------+------+------+------+
| team b | 1 | 0 | 1 | 0 |
| team a | 1 | 0 | 0 | 1 |
| team c | 1 | 1 | 0 | 0 |
| team d | 2 | 2 | 0 | 0 |
+--------+------+------+------+------+
4 rows in set (0.00 sec)
mysql> SELECT NAME,P,W,D,L,@curRank := @curRank + 1 as rank FROM
(выберите NAME, P, W, D, L от порядка игры от ш Desc) х, (SELECT @curRank: = 0) г;
+--------+------+------+------+------+------+
| NAME | P | W | D | L | rank |
+--------+------+------+------+------+------+
| team d | 2 | 2 | 0 | 0 | 1 |
| team c | 1 | 1 | 0 | 0 | 2 |
| team b | 1 | 0 | 1 | 0 | 3 |
| team a | 1 | 0 | 0 | 1 | 4 |
+--------+------+------+------+------+------+
4 rows in set (0.01 sec)
mysql> SELECT NAME,P,W,D,L,rank FROM
(SELECT NAME,P,W,D,L,@curRank := @curRank + 1 as rank,
if(name ="team b",@curRank := @curRank*-1,0) AS required_rank
FROM (select NAME,P,W,D,L from games order by w DESC) x,
(SELECT @curRank := 0) r) p order by abs(rank) desc limit 3;
+--------+------+------+------+------+------+
| NAME | P | W | D | L | rank |
+--------+------+------+------+------+------+
| team b | 1 | 0 | 1 | 0 | 3 |
| team c | 1 | 1 | 0 | 0 | 2 |
| team a | 1 | 0 | 0 | 1 | -2 |
+--------+------+------+------+------+------+
3 rows in set (0.00 sec)
В таком случае число разыгрышей В любой заданной неделе это же для всей команды? – 1000111
Каковы критерии для ранжирования команд? – Malinga
команды оцениваются в порядке очков, а затем разницу мячей, цели за то имя команды. Я не об этом изложил в вопросе выше, но искал, как это сделать, и идти по ответам до сих пор не было далеко. –