У вас есть таблица в sql server 2008, в которой захватываются посещения страниц, что-то похожее на журналы IIS или Google Analytics, ничего необычного.Выберите и запишите группы за 30 минут друг от друга
В таблице есть столбцы, такие как:
[ID], [Имя пользователя], [URL], [Создано], [Браузер], [BrowserVersion], [HostName], [IP-адрес], [OperatingSystem] , [UrlReferrer]
Внизу снимок проиллюстрирован вывод запроса, отсортированный по дате создания (созданный столбец) в нисходящем формате, представляющий/перечисляющий все образы страниц. URL-адреса и имена пользователей опущены для целей конфиденциальности.
То, что я хотел бы сделать, это написать запрос, чтобы сгруппировать все строки в одном, где разница во времени с последней записи вхождение менее чем за 30 минут на идентичном IPAddress и Имя пользователя или другими словами выберите/возвращать только последнюю запись для того же IPAddress и Username и удалять все остальные строки до этого.
Желаемый результат только те строки, с стрелкой рядом с ними (изображение ниже):
Каков ваш желаемый результат? – sgeddes
@sgeddes Представьте себе «blob» строк, которые не определены ни одной строкой в блобе, находящейся более чем на 30 минут от каждой другой строки. Он хочет, чтобы все эти «blobs» на IPAddress и Username были сгруппированы по строкам. – Patashu
Проблема в том, что вам нужно будет скопировать время в 30-минутные куски и сгруппировать их по IP и TimeChunk. Вы не можете просто сказать «в течение 30 минут друг от друга», потому что, если записи распространяются более чем на 30 минут, они не будут знать, как их группировать. –