Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Query SQL per estrarre i valori medi per 1 giorno di gap dob dei client

Un self-join collegherà il record corrente con tutti i record che hanno la data di ieri. In questo contesto il raggruppamento per consente di contare molti record con la stessa data. t1 deve essere contabilizzato separatamente, quindi lo stipendio viene aggiunto in seguito e il conteggio (*) viene incrementato per calcolare la media.

Ecco Sql Fiddle con un esempio .

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