sql >> Database >  >> RDS >> Sqlserver

Hoe het voortschrijdend gemiddelde over de afgelopen n uur te berekenen

Welnu, het feit dat u het gemiddelde moet berekenen voor elke uur, maakt dit eigenlijk eenvoudiger, omdat je alleen maar hoeft te SUM het aantal producten en deel dit door een vast getal (24). Dus ik denk dat dit de gewenste resultaten zal opleveren (hoewel in dit specifieke geval een cursor eigenlijk sneller is):

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. Groepsconcat-resultaten afgesneden

  2. SQL Server 2008-ondersteuning wordt beëindigd. Wat nu?

  3. Wat is het jaar 2038-probleem?

  4. Hoe InfluxDB te installeren op Ubuntu 20.10