Ето заявка за получаване на средното време за настройка и време за игра за всяка игра, надявам се да помогне:
SELECT
gameName,
AVG(UNIX_TIMESTAMP(startPlay) - UNIX_TIMESTAMP(beginSetup)) AS setupTime,
AVG(UNIX_TIMESTAMP(gameEnd) - UNIX_TIMESTAMP(startPlay)) AS gameTime,
AVG(UNIX_TIMESTAMP(gameEnd) - UNIX_TIMESTAMP(beginSetup)) AS totalTime,
FROM `table`
GROUP BY gameName
ORDER BY totalTime DESC;
Трябва да даде резултати, подобни на:
+----------+-----------+-----------+-----------+
| gameName | setupTime | gameTime | totalTime |
+----------+-----------+-----------+-----------+
| chess | 1100.0000 | 1250.0000 | 2350.0000 |
| checkers | 466.6667 | 100.5000 | 933.3333 |
+----------+-----------+-----------+-----------+
Току-що вмъкнах около 8 тестови реда с някои произволни данни, така че числата ми нямат смисъл, но това е резултатът, който ще получите.
Имайте предвид, че това ще сканира цялата ви таблица, така че може да отнеме известно време в зависимост от това колко записа имате в тази таблица. Това определено е нещо, което искате да изпълнявате периодично във фонов режим, ако имате значително количество записи на игри.