6
ウィンドウ関数を使用した日付範囲のローリングサム
日付範囲でローリングサムを計算する必要があります。説明するために、AdventureWorksサンプルデータベースを使用して、次の仮想構文で必要なことを正確に実行できます。 SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = SUM(TH.ActualCost) OVER ( PARTITION BY TH.ProductID ORDER BY TH.TransactionDate RANGE BETWEEN INTERVAL 45 DAY PRECEDING AND CURRENT ROW) FROM Production.TransactionHistory AS TH ORDER BY TH.ProductID, TH.TransactionDate, TH.ReferenceOrderID; 悲しいことに、RANGEウィンドウフレーム範囲は現在SQL Serverで間隔を許可していません。 サブクエリと通常の(非ウィンドウ)集計を使用してソリューションを作成できることを知っています。 SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = ( SELECT SUM(TH2.ActualCost) FROM Production.TransactionHistory AS TH2 …