Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie SQL do pobrania średnich wartości dla jednodniowej przerwy między klientami

Połączenie samodzielne połączy aktualny rekord ze wszystkimi rekordami z datą wczorajszą. W tym kontekście grupa według pozwala na zliczenie wielu rekordów o tej samej dacie. t1 musi być rozliczany osobno, więc wynagrodzenie jest dodawane później, a count(*) jest zwiększany w celu obliczenia średniej.

Oto Sql Fiddle z przykładem .

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawianie ponad 1000 wierszy z Excela do SQLServer

  2. Czy mogę użyć instrukcji CASE w warunku JOIN?

  3. Jakie jest znaczenie 1/1/1753 w SQL Server?

  4. Jak usunąć zadanie agenta programu SQL Server w Azure Data Studio

  5. Jak włączyć przechwytywanie zmian danych (CDC) w całej tabeli LUB włączyć funkcję CDC w tabeli z listą kolumn w programie SQL Server