我玩很多棋盘游戏,我维护一个网站/数据库来跟踪几个统计数据。其中一张表记录了不同的时间。它的结构是这样的:
- gameName(文本 - 棋盘游戏的名称)
- numPeople (int - 玩过的人数)
- timeArrived(时间戳 - 我们到达我们正在玩游戏的房子的时间)
- beginSetup (timestamp - 我们开始设置游戏的时间)
- startPlay (timestamp - 我们真正开始玩游戏的时间)
- gameEnd (timestamp - 游戏结束的时间)
基本上,我想做的是利用这些时间从中获取一些有趣/有用的信息(比如平均什么游戏需要最长的设置时间,什么游戏平均需要最长的时间,什么游戏是最长的到达完成等...)通常,我过于依赖 PHP,我只会做一个 select * ... 并抓住所有时间然后做一些 PHP 计算来找到所有的统计信息,但我知道 MySQL 可以通过查询为我做这一切。不幸的是,当涉及到更复杂的查询时,我很迷茫,所以我需要一些帮助。
我想要一些查询的示例,希望一旦有人让我开始,我就可以计算出其他平均时间查询。玩棋盘游戏的平均时间最长的查询是什么样的?平均最快的游戏/设置时间怎么样?
附加信息: draw010 - 你让我有了一个很好的开始,但我没有得到预期的结果。我给了你一些真实的例子……我有一个叫 Harper 的游戏,它已经玩了两次(所以数据库中有两条时间完整的记录)。以下是它的时代:
beginSetup(1) = 2012-07-25 12:06:03
startPlay(1) = 2012-07-25 12:47:14
gameEnd(1) = 2012-07-25 13:29:45
beginSetup(2) = 2012-08-01 12:06:30
startPlay(2) = 2012-08-01 12:55:00
gameEnd(2) = 2012-08-01 13:40:32
然后,当我运行您提供给我的查询(并将秒数转换为小时/分钟/秒)时,我得到了这些结果(对不起,我不知道如何做您所做的酷表):
gameName = Harper
Total Time = 03:34:32
...and other incorrect numbers.
从数字来看,平均总时间应该是大约 1 小时 24 分钟,而不是 3 小时 34 分钟。知道为什么我会得到不正确的数字吗?