如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
胡章俊 阅读(800)
评论(0) 编辑 收藏