Le tableau suivant de l'historique des utilisateurs contient un enregistrement pour chaque jour où un utilisateur donné accède à un site Web (dans une période de 24 heures UTC). Il contient plusieurs milliers d'enregistrements, mais un seul enregistrement par jour et par utilisateur. Si l'utilisateur n'a pas accédé au site Web ce jour-là, aucun enregistrement ne sera généré.
ID UserId CreationDate ------ ------ ------------ 750997 12 07/07/2009 18: 42: 20.723 750998 15 07/07/2009 18: 42: 20.927 751000 19 07/07/2009 18: 42: 22.283
Ce que je recherche, c'est une requête SQL sur cette table avec de bonnes performances , qui me dit quels userids ont accédé au site pendant (n) jours consécutifs sans manquer un jour.
En d'autres termes, combien d'utilisateurs ont (n) enregistrements dans cette table avec des dates séquentielles (jour avant ou après) ? Si un jour est absent de la séquence, la séquence est interrompue et doit recommencer à 1; nous recherchons des utilisateurs qui ont accompli un nombre continu de jours ici sans interruption.
Toute ressemblance entre cette requête et un badge Stack Overflow particulier est purement fortuite, bien sûr .. :)