计算总时间,只需要用结束时间 - 开始时间,然后分组累加即可。
select userid, UNIX_TIMESTAMP(time, 'yyyy-MM-dd HH:mm:ss') - UNIX_TIMESTAMP(lag(time, 1, '1970-01-01 00:00:00') over(partition by userid order by time), 'yyyy-MM-dd HH:mm:ss'), url from test.user_log;结果
Marry 1447290600 url1 Marry 310 url2 Marry 90 url3 Marry 3380 url4 Marry 3690 url5 Peter 1444612200 url1 Peter 310 url2 Peter 90 url3 Peter 3380 url4 Peter 3690 url5因为有两个我将默认值置为了1970-01-01,所以算出来比较大,实际工作中需要按照实际情况处理。