Вопросы звучат немного запутанно, поэтому, чтобы разбить их, я пытаюсь найти разницу во времени между входами и выходами из системы. Улов двоякий. Возможно, что временной диапазон не улавливает первый вход в систему, который вышел из системы в течение этого временного диапазона, и наоборот, возможно, что временной диапазон не уловит последний выход из системы, который вошел в систему во временном диапазоне. В конечном итоге это может выглядеть так, как показано ниже.
| Action | Action Number |
|--------|---------------|
| Login | 1 |- 1am
| Login | 2 |- 1:01 am
| Logout | 1 |- 1:02 am
| Logout | 2 |- 1:03 am
| Logout | 3 |- 1:04 am
| Logout | 4 |- 1:05 am
| Login | 3 |- 1:10 am
| Logout | 5 |- 1:11 am
| Login | 4 |- 1:15 am
| Login | 5 |- 1:16 am
| Logout | 6 |- 1:17 am
| Login | 6 |- 1:18 am
| Logout | 7 |- 1:20 am
| Logout | 8 |- 1:22 am
Где номер действия - это номер входа / выхода из системы в течение периода времени. Например, первый вход в систему будет иметь номер действия 1, как и первый выход из системы, и так далее.
Я написал логику, чтобы получить это на месте, но мне нужна помощь в «удалении» событий между первым входом в систему и последним выходом из системы для каждого перерыва в активности (периоды, когда у пользователя не было сеансов, вошедших в систему). ).
Это будет означать, что первым логином (для временного диапазона) для этого пользователя будет Логин - 1, и он вошел в систему до выхода 4. Это означает, что я хотел бы удалить Логин 2 и Выход 1 и 2 Затем я могу рассчитать разницу во времени между двумя оставшимися событиями, чтобы найти общее время, в которое они были зарегистрированы для любого сеанса в этот период.
Подводя итог, я хочу получить следующий результат из приведенной выше таблицы, но не могу найти хороший способ сделать это.
| Action | Action Number | Flag for Deletion |
|--------|---------------|-------------------|
| Login | 1 | False |
| Login | 2 | True |
| Logout | 1 | True |
| Logout | 2 | True |
| Logout | 3 | True |
| Logout | 4 | False |
| Login | 3 | False |
| Logout | 5 | False |
| Login | 4 | False |
| Login | 5 | True |
| Logout | 6 | True |
| Login | 6 | True |
| Logout | 7 | True |
| Logout | 8 | False |