Nå, det faktum, at du skal beregne gennemsnittet for hver time, gør det faktisk nemmere, da du blot skal SUM
produkttællingen og divider den med et fast tal (24). Så jeg tror, at dette vil få de resultater, du ønsker (selvom en markør i dette særlige tilfælde faktisk er hurtigere):
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