sql >> Databasteknik >  >> RDS >> Sqlserver

Rullande medelvärde / Rullande medelvärde

Här är SQL Fiddle som visar följande fråga:

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

I din fråga bad du att summera 3 på varandra följande värden. Du ändrade din fråga och sa att antalet på varandra följande poster du behöver summera kan ändras. I ovanstående fråga behöver du enkelt ändra m.RowNumber + 2 till vad du än behöver.

Så om du behöver 60, använd då

m.RowNumber + 59

Som du kan se är det väldigt flexibelt eftersom du bara behöver ändra ett nummer.



  1. MySQL låsning i Duplicate Key Error

  2. vill räkna antalet vardagar mellan 2 datum

  3. Hur får du säkert och effektivt rad-id:t efter en insert med mysql med MySQLdb i python?

  4. MySQL ERROR 1005 (HY000):Kan inte skapa tabellen 'foo.#sql-12c_4' (fel:150)