我有一個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