我有一个MySQL表LOGIN_LOG与字段ID,PLAYER,TIMESTAMP和ACTION。 ACTION可以是“登录”或“注销”。只有大约20%的登录有一个伴随注销行。对于那些,我想计算平均持续时间。SQL查询来计算从日志表的访问时间
我想的有点像
select avg(LL2.TIMESTAMP - LL1.TIMESTAMP)
from LOGIN_LOG LL1
inner join LOGIN_LOG LL2 on LL1.PLAYER = LL2.PLAYER and LL2.TIMESTAMP > LL1.TIMESTAMP
left join LOGIN_LOG LL3 on LL3.PLAYER = LL1.PLAYER
and LL3.TIMESTAMP between LL1.TIMESTAMP + 1 and LL2.TIMESTAMP - 1
and LL3.ACTION = 'login'
where LL1.ACTION = 'login' and LL2.ACTION = 'logout' and isnull(LL3.ID)
这是做的最好的方法,还是有一个更有效率?