Предположим, что ваши столбцы названы Date, Time, Action
, вот что вам нужно:
select Date,
case Action
when 'LOGIN' then Min(Time)
when 'LOGOFF' then Max(Time)
end as ActionTime,
Action
from YourTable
group by Date, Action
Обновление
Для расчета разницы вы можете захотеть "свести "строки дня в одну строку:
select Date, MinLoginTime, MaxLogoffTime, MaxLogoffTime - MinLoginTime as Diff
from
(
select Date,
Min(
case Action
when 'LOGIN' then Time
else null
end
) as MinLoginTime,
Max(
case Action
when 'LOGOFF' then Time
else null
end
) as MaxLogoffTime
from YourTable
group by Date
) YourDT
Некоторые соображения:
- Если у вас нет MinLoginTime ИЛИ MaxLogoffTime,
Diff
будет нулевым - Возможно, вам придется поработать над форматированием
Diff
.Проведите некоторое исследование на этот счет для SQLite, каждая СУБД имеет свои особенности по этому вопросу.