У меня есть следующие данные:
CREATE TABLE TimeLog
(
[User] NVARCHAR(6),
[Event] NVARCHAR(3),
[Time] DATETIME
);
INSERT INTO TimeLog
VALUES (N'Mark', N'IN', '2015-04-15 00:31:00'),
(N'Mark', N'IN', '2015-04-16 20:10:00'),
(N'Mark', N'IN', '2015-04-21 14:59:00'),
(N'Mark', N'OUT', '2015-04-22 01:01:00'),
(N'Mark', N'IN', '2015-04-22 10:46:00'),
(N'Mark', N'OUT', '2015-04-23 00:58:00'),
(N'Mark', N'IN', '2015-04-23 14:50:00'),
(N'Mark', N'OUT', '2015-04-24 01:37:00'),
(N'Mark', N'OUT', '2015-04-25 01:01:00'),
(N'Mark', N'OUT', '2015-04-27 00:57:00'),
(N'Mark', N'IN', '2015-04-17 10:32:00'),
Я разделил входы и выходы в другой столбец с запросом:
SELECT
[UserName], [IN], [OUT]
FROM
(SELECT
ROW_NUMBER() OVER (PARTITION BY [UserName] ORDER BY [EventTime]) + ROW_NUMBER() OVER (PARTITION BY [UserName] ORDER BY [EventTime]) % 2 AS [PairID],
*
FROM
[dbo].[AttendanceEvents]
WHERE
UserName = 'Mark') DS
PIVOT
(MAX([EventTime])
FOR [EventName] IN ([IN], [OUT])
) PVT
ORDER BY
[PairID];
Теперь я хочу сохранить результатэтот запрос к переменной или таблице, чтобы узнать среднее время для каждого столбца Datetime
, вход и выход в оба столбца.
Как я могу это сделать?