多行的会话

时间:2017-11-14 00:18:53

标签: sql

我有一个表,其中包含ID的start_time,end_time(两个时间戳)。会话可以是连续的并显示在多行上,但每个会话可以属于另外两列。对于给定的一组列,我试图找到一天的会话长度。

输入表:

ID   Start                   End          Website  Webpage     
U1  11/02/17 10:27:14   11/02/17 10:27:20     W1    P1        
U1  11/02/17 10:27:40   11/02/17 10:27:51     W1    P1        
U2  11/02/17 10:27:20   11/02/17 10:27:38     W2    P2        
U2  11/02/17 10:41:20   11/02/17 10:41:50     W3    P3        
U3  11/02/17 10:27:20   11/02/17 10:27:51     W2    P2        
U1  11/04/17 9:27:30    11/04/17 9:28:30      W1    P1        

如何获得以下所需的输出?

ID    Website  Webpage     time_diff   start_time
U1    W1         P1         17         11/02/17
U2    W2         P2         18         11/02/17
U2    W3         P3         30         11/02/17
U3    W2         P2         31         11/02/17
U1    W1         P1         60         11/04/17

1 个答案:

答案 0 :(得分:0)

忘了为此发布答案。 这个查询有效。谢谢大家的帮助。

SELECT ID, Website, Webpage, SUM(DATEDIFF(second,start,end)) 
AS time_diff, DATE(Start) as start_time
from web_sessions_table
GROUP BY 
start_time, ID,
Webpage,
Website