各ゲームの平均セットアップ時間とプレイ時間を取得するためのクエリは次のとおりです。お役に立てば幸いです。
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行のテスト行を挿入したので、数値が意味をなさないのですが、それが得られる結果です。
これによりテーブル全体がスキャンされるため、このテーブルにあるレコードの数によっては時間がかかる場合があることに注意してください。かなりの量のゲームレコードがある場合は、間違いなくバックグラウンドで定期的に実行したいものです。