У меня есть следующая структура таблицы следующим образом: (пожалуйста, игнорируйте черный ящик. Форматировал вопрос в Excel)
альтернативный текст http://img525.imageshack.us/img525/5788/beforeznj.jpg
Что мне нужно сделать, это преобразовать данные SessionGUID в следующее с помощью TSQL:
альтернативный текст http://img4.imageshack.us/img4/4553/afterjer.jpg
Это таблица пользовательских сессий для моего веб-сайта, и мы облажали SessionGUID, так как он генерировал NEWID () при каждой загрузке страницы. Поэтому теперь нам нужно сгруппировать сеансы по времени (при условии, что сеанс прерывается, если пользователь не запускает загрузку страницы через 30 минут после последней загрузки страницы), используя первый созданный SessionGUID.
Просто чтобы пояснить краткий пример, Пользователь (00000000-0000-0000-0000-000000000000) дважды посетил мой сайт 01.09.2009. Один в 13:37, а другой в 14:46. Пользователь (A107EF1E-00A2-4515-A120-984086BC8368). Обратите внимание, что фактическая таблица содержит миллион строк, которые необходимо обновить. (
UPDATE
Целевая страница / начальный URL для каждого сеанса не всегда является «домашней страницей», это может быть любая страница на веб-сайте. Сюжет утолщается ..
ОБНОВЛЕНИЕ2 Данные испытаний
CREATE TABLE Sessions (IPAddress VARCHAR(15), UserGUID UNIQUEIDENTIFIER, DATE DATETIME, URL VARCHAR(200), SessionGUID UNIQUEIDENTIFIER)
INSERT INTO Sessions (
IPAddress,
UserGUID,
DATE,
URL,
SessionGUID
)
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 13:37:34', 'homepage', '2B3A80B1-A247-4BB5-81BB-B54DED0C9C6A')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 13:37:36', 'page1', '7FB10E12-5EB9-428C-BE3E-57818DEF8512')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 13:37:41', 'page2', 'D12C3539-1239-447E-8BD8-DBA6B7087ADE')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 14:56:00', 'homepage', '4FE36C46-640B-464F-8118-AFFE477347A1')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 14:56:10', 'page2', 'FF9BF55B-3630-4D05-AB57-1B6ECAB96657')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 14:56:18', 'page4', '863D3424-9788-481A-8440-09313ED4F8FE')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 14:56:19', 'page3', '105D7FE5-C731-4EB6-B287-720127AAF0A3')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 15:00:35', 'page5', '296479D0-3848-4189-94E2-41906BAE580D')
VALUES ( '192.168.0.1', '00000000-0000-0000-0000-000000000000', '09/01/2009 15:00:36', 'page7', 'E3FFEBC6-C11E-4DF4-81FA-B42F1BF7AFD3')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '12/01/2009 18:30:22', 'homepage', '1F918AB3-34E1-4343-8462-FA56423B921D')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '12/01/2009 18:34:26', 'page1', '801C3DC8-F0F3-4B9C-BD53-BCCBE784CFAE')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '12/01/2009 18:38:17', 'page2', 'A9A5C2BD-31B9-4A9B-A8BC-88C460F17282')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '15/01/2009 11:42:27', 'page3', 'B29CE754-C7A3-40E8-8CB0-216A3E852762')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '15/01/2009 11:42:32', 'page4', 'E291C4B9-A422-4A76-A550-F65C208DD886')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '15/01/2009 11:44:51', 'page6', '63D4A636-8336-44E7-8C97-9CD65D21359E')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '15/01/2009 11:44:55', 'page2', '7BB814CD-C9B3-4CAF-A45C-4405DC0B07D2')
VALUES ( '212.1.1.0', 'A107EF1E-00A2-4515-A120-984086BC8368', '15/01/2009 11:48:35', 'page4', 'B6DCEC1E-C262-425D-8E46-8F4B47F2921A')
Спасибо.
Несчастный новобранец DBA.