Bir dizi (IP varchar (15), DateTime datetime2) değerlerine sahip bir tablom var. Her satır, bir kullanıcı tarafından yapılan bir HTTP isteğine karşılık gelir. Bu satırlara oturum numaralarını atamak istiyorum. Farklı IP adreslerinin farklı oturum numaraları vardır. Son istek 30min'dan daha eskiyse aynı IP'ye numaralı yeni oturum numarası atanmalıdır.SQL Server: zamanaşımı tarafından bölümlenmiş row_number
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)
Sütun 1 ve 2 girişleri, 3 ve 4, arzu edilen çıkışlar vardır: Burada örnek bir çıkıştır. Tablo iki kullanıcı gösterir.
Altta yatan tablo gerçekten büyük olduğundan, bu nasıl verimli şekilde çözülebilir? Verilerin (bir veya iki) üzerinde küçük bir miktar sabit geçiş yapmayı tercih ederim.
Hangi SQL Server sürümü? 2012 ise yeni 'OVER' fıkra işlevselliği yardımcı olacaktır. –
Evet, SQL Server 2012'dir. – usr