Đây là một truy vấn để có được thời gian thiết lập và thời gian chơi trung bình cho mỗi trò chơi, hy vọng nó sẽ hữu ích:
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;
Sẽ mang lại kết quả tương tự như:
+----------+-----------+-----------+-----------+
| gameName | setupTime | gameTime | totalTime |
+----------+-----------+-----------+-----------+
| chess | 1100.0000 | 1250.0000 | 2350.0000 |
| checkers | 466.6667 | 100.5000 | 933.3333 |
+----------+-----------+-----------+-----------+
Tôi vừa chèn khoảng 8 hàng thử nghiệm với một số dữ liệu ngẫu nhiên nên các con số của tôi không có ý nghĩa, nhưng đó là kết quả bạn sẽ nhận được.
Lưu ý rằng thao tác này sẽ quét toàn bộ bảng của bạn nên có thể mất một lúc tùy thuộc vào số lượng bản ghi bạn có trong bảng này. Đó chắc chắn là thứ bạn muốn chạy trong nền định kỳ nếu bạn có một lượng lớn bản ghi trò chơi.