gpt4 book ai didi

mysql - MySQL 中的平均 datediff

转载 作者:行者123 更新时间:2023-11-29 02:24:48 25 4
gpt4 key购买 nike

我有一个名为“game_logs”的表,其结构如下:

id: integer
user_id: integer
game_id: integer
game_event_type_id: integer
timestamp: datetime

我必须为具有相同 user_id 和 game_id 的记录计算类型“3”(game_event_type_id=3) 事件之间的平均时间差异。

 id, user_id, game_id, game_event_type_id, timestamp
'1', '45', '92', '3', '2014-06-02 15:36:04'
'2', '45', '92', '3', '2014-06-02 15:36:17'
'3', '45', '92', '3', '2014-06-02 15:36:25'
'4', '20', '91', '3', '2014-06-02 15:37:15'

我一直在尝试不同的方法,但按 game_id 和 user_id 分组并同时计算平均值似乎很有挑战性。我将加入同一张 table 。

有人可以帮助我吗?谢谢!

最佳答案

您可以通过执行以下操作获得以秒为单位的平均差异:

select user_id, game_id,
(case when count(*) > 1
then timestampdiff(second, min(timestamp), max(timestamp)) / (count(*) - 1)
end) as AvgDiffSeconds
from game_logs gl
where game_event_type_id = 3
group by user_id, game_id;

关键思想是平均差值是最大值减去最小值除以记录数减一。

关于mysql - MySQL 中的平均 datediff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com