sql >> Databáze >  >> RDS >> Sqlserver

Jak vypočítat klouzavý průměr za posledních n hodin

No fakt, že je potřeba vypočítat průměr pro každý hodinu, ve skutečnosti to zjednodušuje, protože stačí SUM počet produktů a vydělte ho pevným číslem (24). Takže si myslím, že tím získáte požadované výsledky (i když v tomto konkrétním případě bude kurzor ve skutečnosti rychlejší):

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. Doba provádění dotazu Oracle

  2. MariaDB JSON_DEPTH() Vysvětleno

  3. Prohlášení Oracle

  4. Může se aplikace pro Android připojit přímo k online databázi mysql