Vous avez un problème avec une requête que j'essaie d'écrire. J'ai un tableau qui répertorie les personnes qui ont reçu un e-mail. Il y a une colonne bit nommée Active qui est définie sur true si elle a répondu. Mais j'ai besoin de compter le nombre de courriels consécutifs où la personne a été inactive depuis son premier courriel ou son dernier courriel actif.Comptage d'éléments consécutifs dans SQL Server
Par exemple, ce tableau de base montre qu'une personne a reçu 9 courriels. Ils ont été actifs dans deux des courriels (3 & 5). Donc, leur nombre inactif serait de 4, car nous comptons à partir du numéro 6 par courriel.
PersonID(int) EmailID(int) EmailDate(datetime) Active(bit)
1 1 2009-07-18 19:56:20 0
1 2 2009-08-18 19:56:20 0
1 3 2009-09-18 19:56:20 1
1 4 2009-10-18 19:56:20 0
1 5 2009-11-18 19:56:20 1
1 6 2009-12-18 19:56:20 0
1 7 2010-01-18 19:56:20 0
1 8 2010-02-18 19:56:20 0
1 9 2010-03-18 19:56:20 0
Tout pointeur ou aide serait formidable.
Cordialement Greg
Mon 2c - la colonne active devrait être appelée HasResponded pour indiquer effectivement l'action. –
Vos données d'échantillon sont-elles une description précise du problème? Ce que je veux dire, c'est que les EmailID sont toujours * garantis * consécutifs (sans rupture de numérotation) dans chaque valeur PersonID? –
Il existe des dates associées aux e-mails. Pensez que je vais modifier le post pour refléter cela. – Greg