Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да изчислим пълзящата средна за последните n часа

Е, фактът, че трябва да изчислите средната стойност за всеки час, всъщност прави това по-лесно, тъй като просто трябва да SUM пребройте продукта и го разделете на фиксирано число (24). Така че мисля, че това ще доведе до желаните от вас резултати (въпреки че в този конкретен случай курсорът от всъщност е по-бърз):

SELECT A.*, B.ProductCount/24 DailyMovingAverage
FROM ProductInventory A
OUTER APPLY (   SELECT SUM(ProductCount) ProductCount
                FROM ProductInventory
                WHERE ProductName = A.ProductName 
                AND [Date] BETWEEN DATEADD(HOUR,-23,A.[Date]) AND A.[Date]) B


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкнете няколко реда в една колона

  2. Проблем със закръгляването във функциите LOG и EXP

  3. ODBC заявка на MS SQL Server, връщаща първите 255 знака само в PHP PDO (FreeTDS)

  4. Как да свия базата данни на SQL Server?

  5. Има ли рискове за сигурността, свързани с наблюдението в облака на Spotlight?