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

Średnia krocząca / średnia krocząca

Oto SQL Fiddle który demonstruje następujące zapytanie:

WITH TempS as 
(
  SELECT s.SNo, s.value, 
  ROW_NUMBER() OVER (ORDER BY s.SNo) AS RowNumber
  FROM MyTable AS s
)
SELECT m.SNo, m.value,
(
  SELECT SUM(s.value) 
  FROM TempS AS s
  WHERE RowNumber >= m.RowNumber
  AND RowNumber <= m.RowNumber + 2
) AS Sum3InRow
FROM TempS AS m

W swoim pytaniu prosiłeś o zsumowanie 3 kolejnych wartości. Zmodyfikowałeś swoje pytanie, mówiąc, że liczba kolejnych rekordów, które musisz zsumować, może się zmienić. W powyższym zapytaniu wystarczy zmienić m.RowNumber + 2 do tego, czego potrzebujesz.

Więc jeśli potrzebujesz 60, użyj

m.RowNumber + 59

Jak widać, jest to bardzo elastyczne, ponieważ wystarczy zmienić tylko jeden numer.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. aktualizowanie wielu kolumn za pomocą instrukcji case na serwerze sql

  2. Jak oddzielić datę od napisu?

  3. Jak podzielić pojedynczą komórkę na wiele kolumn w sql server 2008R2?

  4. Jak skryptować procedury składowane do plików?

  5. Dodawanie wielu sparametryzowanych zmiennych do bazy danych w c#