Hive 分析函数lead、lag实例应用 (2)

计算总时间,只需要用结束时间 - 开始时间,然后分组累加即可。

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,所以算出来比较大,实际工作中需要按照实际情况处理。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfgsd.html