Mysql 计算约会的间隔时间

Mysql 计算约会的间隔时间,mysql,datediff,Mysql,Datediff,我有一张桌子,里面有以下信息 姓名、日期、类型(任命) 我想计算出每个名字的预约天数之差。有些人可能只有一次约会,其他人可能有50次约会。我想要的是每次约会之间的平均天数 我尝试了内部联接,创建了一个临时表,并在StackOverflow上使用了无止境的答案,但似乎都不起作用 我的最新版本是: SELECT A.Name, A.Date, (B.Date - A.Date) AS timedifference FROM Appointments A CROSS JOIN Appointm

我有一张桌子,里面有以下信息

姓名、日期、类型(任命)

我想计算出每个名字的预约天数之差。有些人可能只有一次约会,其他人可能有50次约会。我想要的是每次约会之间的平均天数

我尝试了内部联接,创建了一个临时表,并在StackOverflow上使用了无止境的答案,但似乎都不起作用

我的最新版本是:

    SELECT A.Name, A.Date, (B.Date - A.Date) AS timedifference
FROM Appointments A CROSS JOIN Appointments B
WHERE B.Name IN (SELECT MIN(C.Date) FROM Appointments C WHERE C.Date > A.Date)
ORDER BY A.Name ASC
但那会使我的网页超时

有人能帮忙吗

谢谢,
Claire

您可以使用一个子查询来计算日期之间的UNIX\u时间戳差异 然后通过
name
将秒转换为天

SELECT (SELECT ( Unix_timestamp() - Sum(Unix_timestamp(`date`)) / Count(*) ) / 
               60 / 60 / 24 
        FROM   `appointments` 
        WHERE  `name` = `ap`.`name` 
        GROUP  BY `name`) AS `daydiff`, 
       `ap`.`name` 
FROM   `appointments` `ap` 
GROUP  BY `name` 
看看这个SQLFiddle:
那么,日期是UNIXTIME??如果你愿意,考虑下面这个简单的两步过程:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果您还没有这样做,请提供与步骤1中提供的信息相对应的所需结果集。Date是mysql中的日期格式,很抱歉,我不知道如何进行DDL和/或SQLFIDLE。以下是我想要实现的一个例子:John Smith 1/3/2014理发John Smith 18/3/2014胡须Trim John Smith 6/4/2014理发预约间隔天数1和2 17天,2和3 19天,所有约会之间的平均时间为18天看看我的答案,它应该是您在寻找的Hanks@Dan Revah-这是一个非常愚蠢的问题,但我如何获得用php显示的结果?很抱歉,在运行其他自定义查询时询问您的名称。创建与服务器的连接,运行查询并获取结果@克莱尔,如果这个答案对你有帮助的话。您应该通过点击答案左上角附近的V图标将其作为右答案接受。您已经完成,并且“duh”错过了代码中的as
daydiff
。非常感谢你的帮助,我已经为此挣扎了好几天了。