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

Glidende gennemsnit / rullende gennemsnit

Her er SQL Fiddle der viser følgende forespørgsel:

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 dit spørgsmål bad du om at summere 3 på hinanden følgende værdier. Du ændrede dit spørgsmål og sagde, at antallet af på hinanden følgende poster, du skal summere, kunne ændre sig. I ovenstående forespørgsel skal du blot ændre m.RowNumber + 2 til hvad du nogensinde har brug for.

Så hvis du har brug for 60, så brug

m.RowNumber + 59
 

Som du kan se, er det meget fleksibelt, da du kun skal ændre ét nummer.



  1. 3 måder at finde positionen af ​​en understreng i en streng i MySQL

  2. MySQL behandler jeg ikke som jeg?

  3. Sådan hentes data fra MySQL-databasen til Excel

  4. Rails - Brug join med specialnavngivne foreninger