gpt4 book ai didi

MySQL:记录之间的平均间隔

转载 作者:IT老高 更新时间:2023-10-28 23:49:35 26 4
gpt4 key购买 nike

假设这张表:

id    date
----------------
1 2010-12-12
2 2010-12-13
3 2010-12-18
4 2010-12-22
5 2010-12-23

如何仅使用 MySQL 查询找到这些日期之间的平均间隔?

例如,这张表上的计算将是

  (
( 2010-12-13 - 2010-12-12 )
+ ( 2010-12-18 - 2010-12-13 )
+ ( 2010-12-22 - 2010-12-18 )
+ ( 2010-12-23 - 2010-12-22 )
) / 4
----------------------------------
= ( 1 DAY + 5 DAY + 4 DAY + 1 DAY ) / 4
= 2.75 DAY

最佳答案

直觉上,您要问的应该等于第一个日期和最后一个日期之间的间隔除以日期数减 1。

让我更详细地解释一下。假设日期是一条线上的点(+ 是存在的日期,- 是缺失的日期,第一个日期是 12 日,我将最后一个日期更改为 12 月 24 日,因为说明目的):

++----+---+-+

现在,您真正想做的是,将您的日期均匀分布在这些行之间,并找出每行之间的时间间隔:

+--+--+--+--+

为此,您只需计算最后一天和第一天之间的天数,在本例中为 24 - 12 = 12,然后将其除以您必须间隔的间隔数,在本例中为 4:12/4 = 3

使用 MySQL 查询

SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;

这适用于此表(使用您的值返回 2.75):

CREATE TABLE IF NOT EXISTS `a` (
`dt` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `a` (`dt`) VALUES
('2010-12-12'),
('2010-12-13'),
('2010-12-18'),
('2010-12-22'),
('2010-12-24');

关于MySQL:记录之间的平均间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4312019/

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