У меня есть таблица MySQL LOGIN_LOG с идентификаторами полей, PLAYER, TIMESTAMP и ACTION. ACTION может быть либо «login», либо «logout». Только около 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)
это лучший способ сделать это, или есть еще один эффективный?