Mam tabelę z serią wartości (IP varchar (15), DateTime datetime2). Każdy wiersz odpowiada żądaniu HTTP zgłoszonemu przez użytkownika. Chcę przypisać numery sesji do tych wierszy. Różne adresy IP mają różne numery sesji. Ten sam adres IP powinien mieć przypisany nowy numer sesji , jeśli ostatnie żądanie jest starsze niż 30 minut. Oto przykładowe wyjście:Serwer SQL: numer_wiersza podzielony przez timeout
IP, DateTime, SessionNumber, RequestNumber
1.1.1.1, 2012-01-01 00:01, 1, 1
1.1.1.1, 2012-01-01 00:02, 1, 2
1.1.1.1, 2012-01-01 00:03, 1, 3
1.1.1.2, 2012-01-01 00:04, 2, 1 --different IP => new session number
1.1.1.2, 2012-01-01 00:05, 2, 2
1.1.1.2, 2012-01-01 00:40, 3, 1 --same IP, but last request 35min ago (> 30min)
Kolumny 1 i 2 to wejścia, 3 i 4 to żądane wyjścia. Tabela pokazuje dwóch użytkowników.
Podstawową tabelą jest naprawdę duża, jak można to skutecznie rozwiązać? Wolałbym małą stałą liczbę przejść przez dane (jedną lub dwie).
Jaką wersję programu SQL Server? W 2012 roku pomocna będzie nowa funkcja klauzula "OVER". –
Tak, to jest SQL Server 2012. – usr