计算约会之间的日子

时间:2014-12-04 10:12:56

标签: mysql datediff

我有一张表,约会中包含以下信息

姓名,日期,类型(预约)

我想弄清楚每个姓名的约会之间的天数差异。有些名字可能只有1个约会,有些可能有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

但这超出了我的网页。

有人可以帮忙吗?

谢谢, 克莱尔

1 个答案:

答案 0 :(得分:2)

您可以使用子查询来计算日期之间的UNIX_TIMESTAMP差异 然后按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: http://sqlfiddle.com/#!2/85c19/7