如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 @
2010-01-30 16:18 胡章俊 阅读(797) |
评论 (0) |
编辑 收藏