У меня есть проблема, с которой я боролся некоторое время. Если кто-то может мне помочь, это было бы здорово. Это на SQL Server 2012.Получите транзакции в течение часа друг от друга (не по часам)
У меня есть таблица с определенным количеством операций и идентификатора пользователя в. мне нужно подсчитать все транзакции, которые находятся в часе друг друг и группы по идентификатору пользователя. Он не может быть сгруппирован по датеpart (hh, 1, SomeColumn), потому что тогда он будет принимать транзакции, которые произошли в 16:00 - 16:59.
Поэтому мне нужно сгруппировать его по первой транзакции, которая произошла + 1 час, а затем, если другой пакет транзакций произошел позже, мне также нужно сгруппировать его.
Пример:
Первая сделка была 13:45 - мне нужен подсчет всех сделок, которые произошли с 13:45 - 14:45. Сгруппирован по идентификатору пользователя.
Тогда мне нужно иметь счет всех транзакций, которые произошли в 16:09 - 17:09, сгруппированных по тому же идентификатору пользователя.
Приносим извинения, если он немного запутан.
Таблица:
Пользователь | TransactionTime
0125 | 03/06/2016 12:24:01
0125 | 03/06/2016 12:34:06
0125 | 03/06/2016 13:22:02
0125 | 03/06/2016 16:24:10
0125 | 03/06/2016 17:10:08
Выход:
Пользователь | TransactionTimeStart | TransactionTimeEnd | Сделки
0125 | 03/06/2016 12:24:01 | 03/06/2016 13:22:02 | 3
0125 | 03/06/2016 16:24:10 | 03/06/2016 17:10:08 | 2
Просьба представить некоторые данные образца и ожидаемый вывод – TheGameiswar
Не знаю, как добавить формат таблицы - старался изо всех сил, но –
Возможно, вам стоит подумать о том, чтобы разбить время на другую временную таблицу или переменную таблицы.Вы можете использовать таблицу таблиц или цикл для создания списка дат, используя первую запись в качестве драйвера и просто присоединяйся к этому. Вы также можете достичь этого, используя cte – Charleh