posts - 2,comments - 0,trackbacks - 0

如login表有人员ID登陆或登出时间time求每天每次登陆登出一次的在线时间:
 

select login.id as人员ID ,login.status as 登陆登出状态
 login.time as 登陆或登出时间 ,
lead(login.time) over (partition by login.id,trunc(login.time) order by login.time)  as 下次登出或登出时间

from login login

这样状态是登陆的记录就会同时拥有登出的时间,这样两者一减就是在线时间了。
lead函数是取下一条记录,over (partition by login.id,trunc(login.time))如同对id,time分组,
order by login.time是按时间排序,这样可以知道是登陆登出的顺寻
posted on 2010-01-30 16:18 胡章俊 阅读(798) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: