sql >> Database >  >> RDS >> Sqlserver

SQL-query om de gemiddelde waarden op te halen voor 1 dag gap dob's van klanten

Een self-join verbindt het huidige record met alle records met de datum van gisteren. In deze context maakt group by het mogelijk om veel records met dezelfde datum te tellen. t1 moet apart worden verantwoord, dus het salaris wordt achteraf toegevoegd en count(*) wordt verhoogd om het gemiddelde te berekenen.

Hier is Sql Fiddle met voorbeeld .

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



  1. Hoe de stuff-functie in Oracle te gebruiken?

  2. java.lang.OutOfMemoryError:[geheugen uitgeput] tijdens het lezen van gegevens van Sqlite Android

  3. Laravel - Integriteitsbeperkingsschending:1452 Kan een onderliggende rij niet toevoegen of bijwerken:een externe sleutelbeperking mislukt

  4. Externe sleutel die verwijst naar meerdere tabellen