gpt4 book ai didi

mysql - SQL计算总行之间的平均时间差

转载 作者:可可西里 更新时间:2023-11-01 07:46:45 25 4
gpt4 key购买 nike

我已经四处搜索,但似乎无法找到适合我的答案的问题。我有一个包含近 200 万行的表,每行都有一个 MySQL 日期格式的字段。

我想计算(以秒为单位)一行被插入的频率,因此使用 SQL 查询计算所有行的日期之间的平均差异。

有什么想法吗?

-- 编辑--

这是我的 table 的样子

id, name, date (datetime), age, gender

最佳答案

如果您想知道插入一行的频率(平均),我认为您不需要计算所有差异。您只需要将相邻行(根据时间戳相邻)之间的差异相加,然后将结果除以被加数的个数即可。

公式

((T1-T0) + (T2-T1) + … + (TN-TN-1)) / N

can obviously be simplified to merely

(TN-T0) / N

So, the query would be something like this:

SELECT TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / (COUNT(*) - 1)
FROM atable

确保行数大于 1,否则您将收到被零除错误。不过,如果您愿意,可以使用一个简单的技巧来防止错误:

SELECT
IFNULL(TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / NULLIF(COUNT(*) - 1, 0), 0)
FROM atable

现在您可以安全地针对单行表运行查询。

关于mysql - SQL计算总行之间的平均时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191310/

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