Posiadam taką tabelę w bazie danych:
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `points` int(1) NOT NULL, `team` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; INSERT INTO `test` (`id`, `points`, `team`) VALUES (1, 5, 'a'), (2, 5, 'b'), (3, 5, 'a'), (4, 3, 'c'), (5, 2, 'a'), (6, 5, 'd'), (7, 5, 'b');
Jest to spis zadań wykonywanych przez drużyny, które dostają za wykonanie punkty
Kiedy wykonuję zapytanie:
SELECT SUM(points) AS rank_points, COUNT(id) AS rank_jobs, team FROM test WHERE points > 0 GROUP BY team
Zwraca mi w wyniku ilość zdobytych punktów, ilość wykonanych zadań oraz ID drużyny która wykonała zadanie. Mój problem polega na tym, że muszę posortować te wyniki wg średniej punktów każdej drużyny malejąco.
Czyli: rank_points/rank_job = rank_rating. Chciałbym posortować to wg. rank_rating DESC. Oczywiście mogę sobie uzyć funkcji usort" title="Zobacz w manualu PHP" target="_manual, ale co da się na bazie to powinniśmy to robić.
Z góry dziękuję za odpowiedzi, Athlan
