我有项目表,每个项目都有它的开始时间和结束时间。
例如:
| id | item | start | end |
+---------+------+------------+------------+
| 2703 | 223 | 2003-12-30 | 2004-01-16 |
| 47029 | 223 | 2004-04-21 | 2005-01-06 |
| 1386593 | 223 | 2005-04-19 | 2005-04-19 |
| 1386739 | 223 | 2005-04-19 | 2006-12-07 |
| 1432862 | 223 | 2006-02-08 | 2006-02-10 |
我想找到项目之间的差距(一个人结束与下一次开始之间的天数)。示例中前两项之间的间隔为 93 天,后两项之间有重叠 302 天,计为零。因此,例如表格的差距是:
96
103
0
0
我的目标是找到平均间隔(本例中为 49.75)或间隔天数的总和(199)。
可选目标:最小差距 (0) 和最大差距 (103)。
我现在的解决方案是遍历行并在数据库外部计算它,但我正在寻找快速解决方案(在 MySQL 内部)。我查看了聚合函数,但不知道这是否可能。找到这种平均差距的最佳方法是什么?