La seguente tabella Cronologia utente contiene un record per ogni giorno in cui un determinato utente ha avuto accesso a un sito Web (in un periodo UTC di 24 ore). Ha molte migliaia di record, ma solo un record al giorno per utente. Se l'utente non ha effettuato l'accesso al sito Web per quel giorno, non verrà generato alcun record.
Id UserId CreationDate ------ ------ ------------ 750997 12-07-07 2009 18: 42: 20.723 750998 15-07-07 2009 18: 42: 20.927 751000 19 2009-07-07 18: 42: 22.283
Quello che sto cercando è una query SQL su questa tabella con buone prestazioni , che mi dice quali userid hanno avuto accesso al sito Web per (n) giorni continui senza perdere un giorno.
In altre parole, quanti utenti hanno (n) record in questa tabella con date sequenziali (il giorno prima o il giorno dopo) ? Se un giorno manca dalla sequenza, la sequenza viene interrotta e dovrebbe ricominciare da 1; stiamo cercando utenti che hanno raggiunto un numero continuo di giorni qui senza lacune.
Qualsiasi somiglianza tra questa query e un particolare badge Stack Overflow è puramente casuale, ovviamente .. :)