Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Consulta SQL para extrair os valores médios para dob de clientes com intervalo de 1 dia


Uma auto-junção conectará o registro atual com todos os registros com a data de ontem. Neste contexto agrupar por permite que muitos registros com a mesma data sejam contados. t1 precisa ser contabilizado separadamente, então o Salário é adicionado posteriormente e a contagem(*) é incrementada para calcular a média.

Aqui está Sql Fiddle com exemplo .
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