Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requête SQL pour extraire les valeurs moyennes pour les dates d'intervalle d'un jour des clients

Une auto-jointure connectera l'enregistrement actuel à tous les enregistrements ayant la date d'hier. Dans ce contexte, le regroupement par permet de compter plusieurs enregistrements ayant la même date. t1 doit être comptabilisé séparément, donc le salaire est ajouté par la suite, et count(*) est incrémenté pour calculer la moyenne.

Voici Sql Fiddle avec exemple .

select t1.ClientID, 
       t1.ClinetDOBs,
       (t1.Slaries + sum (t2.Slaries)) / (count (*) + 1) Avg_Slaries
  from table1 t1
 inner join table1 t2
    on t1.ClinetDOBs = dateadd(day, 1, t2.ClinetDOBs)
 group by t1.ClientID, 
       t1.ClinetDOBs,
       t1.Slaries