0
我有用戶訪問的表等這樣的:有條件集合行
SELECT * FROM visits ORDER BY start_time;
user_id | start_time | end_time
---------+---------------------+---------------------
10 | 2016-06-01 05:45:00 | 2016-06-01 06:00:00
10 | 2016-06-01 06:05:00 | 2016-06-01 06:30:00
10 | 2016-06-01 06:10:00 | 2016-06-01 06:40:00
10 | 2016-06-02 10:00:00 | 2016-06-01 10:30:00
10 | 2016-06-03 13:00:00 | 2016-06-01 14:00:00
我想「合併」行,其中所述訪問重疊,或者有10分鐘內彼此,像這樣:
user_id | start_time | end_time
---------+---------------------+---------------------
10 | 2016-06-01 05:45:00 | 2016-06-01 06:40:00
10 | 2016-06-02 10:00:00 | 2016-06-01 10:30:00
10 | 2016-06-03 13:00:00 | 2016-06-01 14:00:00
- 第一3行中,因爲前兩行合併成1彼此和第三行的5分鐘(少於10分鐘)內重疊第二
- 最後三個行s是沒有改變,因爲沒有行是在10分鐘內
我不認爲這是可能的使用GROUP BY
因爲每個行的分組函數返回值將取決於多行。我在想窗口函數可以幫助,但一直在努力構建查詢。
我使用AWS Redshift
感謝您的幫助!