Я использую приведенный ниже код, чтобы получить общее расстояние для команд, в которых люди зарегистрировались и ввели данные, а затем назначить место для команды.
SELECT @curRow := @curRow + 1 AS position, ROUND(SUM(d.dist_activity_duration
* CASE
WHEN d.dist_is_distance = 0 THEN s.activity_steps / 2000
WHEN d.dist_is_distance = 1 THEN 1
END)
,2) AS miles, t.team_name AS team_name
FROM distance d
JOIN (SELECT @curRow := 0) r
JOIN activities a
ON a.id = d.dist_activity_id
JOIN steps s
ON s.id = a.steps_id
JOIN members AS m
ON d.member_id = m.id
JOIN teams AS t
ON t.id = m.member_team_id
GROUP BY team_name
ORDER BY miles DESC
Приведенный выше код выводит следующие результаты
position miles team_name
2 134.05 team 1
1 78.00 team 2
Мне бы хотелось, чтобы позиция 1 была назначена команде с наивысшими милями, позиция 2 - второй наивысшей команде ... и т. Д.