MySQL — среднее значение последних столбцов в другой таблице

У меня есть две таблицы: "серверы" и "статистика"

серверы имеют столбец с именем "id ", который автоматически увеличивается. В статистике есть столбец под названием «сервер», который соответствует строке в таблице серверов, столбец под названием «время», который представляет время, когда он был добавлен, и столбец под названием «голоса», по которому я хотел бы получить среднее значение.

Я хотел бы получить все серверы ( SELECT * FROM server) вместе со средним количеством голосов 24 самых последних строк, соответствующих каждому серверу. Я считаю, что это вопрос «наибольшего n на группу».

Это то, что я пытался сделать, но это дало мне всего 24 строки, а не 24 строки на группу:

SELECT servers.*,
       IFNULL(AVG(stats.votes), 0) AS avgvotes
FROM servers
LEFT OUTER JOIN
  (SELECT server,
          votes
   FROM stats
   GROUP BY server
   ORDER BY time DESC LIMIT 24) AS stats ON servers.id = stats.server
GROUP BY servers.id

Как я уже сказал, я хотел бы получить 24 самых последних строки для каждого сервера, а не 24 самых последних. всего строк.

6
задан fruitcup 19 June 2012 в 20:34
поделиться