我有一个SQLite表看起来像这样的数据:评估顺序对行的SQLite中
user_id event_date
---------- ----------
1000001 2008-01-01
1000001 2008-03-13
1000001 2008-07-04
1000002 2007-01-06
1000002 2008-01-01
1000002 2009-06-01
1000002 2010-12-11
对于每个user_id
S的我想选择对连续event_date
S之间的最大时间间隔。例如,在此特定数据中,用户1000001有两个差距:2008-01-01和2008-03-13之间的72天,以及2008-03-13和2008-07-04之间的113天,因此查询应输出113对于用户1000001而言。用户1000002具有三个间隙;最大的是558天。
这可能吗?我是否必须预先计算时间跨度并将它们与数据一起存储,或者选择所有内容并发布过程?我希望能够直接使用所显示的数据直接在数据库中完成它。我是否在滥用SQL,期望它能够将这些数据视为列表?
谢谢。
解决的第一个障碍是要知道什么时候有一对。对于Userid 1000002,有四个日期 - 这是否意味着差距仍然在当前值和下一个值之间,还是只有两个差距,因为有偶数对? – 2010-10-19 19:28:35
对于给定的user_id,一对总是在“当前”和“下一个”日期之间。即如果用户有n个事件日期,他有n-1对。我将编辑这个问题来澄清这一点。 – Dave 2010-10-19 19:32:31