Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сортировка  [new]
Максим_78
Member

Откуда:
Сообщений: 28
Добрый день!
Есть таблица в которой содержаться некие действия пользователей.
Ключевыми данными в таблице являются даты тех самых действий.
Необходимо высчитать время между парами действий, т.е. между строками 1 и 2, 2 и 3 и т.д.
ID | UserID | Дата решения | Время на этапе(мин)
1 | 6287 | 08.02.2019 12:38 | 0
2 | 6287 | 08.02.2019 12:46 | 8
3 | 6287 | 08.02.2019 13:21 | 35
4 | 6287 | 08.02.2019 13:23 | 2


Последний столбец посчитан в ручную, такие данные должны в него выводиться.
Табличка немного корявенько получилась, но надеюсь вопрос будет понятен.

Спасибо!
28 фев 19, 14:28    [21821782]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Максим_78,

DATEDIFF(minute,LEAD([Дата решения]) OVER (PARTITION BY UserId ORDER BY [Дата решения]),Created)
28 фев 19, 14:37    [21821800]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1172
Максим_78,

declare @t table (id int, userid int, [date] datetime)

insert into @t values (1, 6287, '20190208 12:38'), (1, 6287, '20190208 12:46'), (1, 6287, '20190208 13:21'), (1, 6287, '20190208 13:23')

select [id], [userid], [date], datediff(mi, lag([date], 1, null) over (order by [date]), [date]) as [ss] from @t;
28 фев 19, 14:38    [21821802]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
а, LAG надо :)
28 фев 19, 14:39    [21821804]     Ответить | Цитировать Сообщить модератору
 Re: Сортировка  [new]
Максим_78
Member

Откуда:
Сообщений: 28
Класс!!!
Не знал про эти функции... пошёл читать.
А я уже начал трёхэтажные конструкции воротить))), а оказалось есть такое классное решение)))

Господа-товарищи, всем большущее спасибо!!!
28 фев 19, 15:49    [21821908]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить