0

2年前にさかのぼる複数の製品の1時間ごとのエントリの表があります。私は次のようなクエリを作成しようとしています。

PRODUCT, TODAY'S AVERAGE, LAST MONTHS DAILY AVERAGE, YEAR TO DATE DAILY AVERAGE

これは、平均ごとに個別のクエリを記述し、それらをに結合することで実現できますPRODUCT NAME。ただし、1つのクエリを作成するだけで、同じことができるようにしたいと思います。

それらは私が適用できる標準的なアルゴリズム/方法ですか?

4

1 に答える 1

0

これは集計クエリです。ただし、必要な期間ごとに変数を取得し、最終的な計算を行うために日ごとに合計します。

select product,
       sum(DailySum*IsToday) as Today,
       sum(1.0*DailySum*IslastMonth) / sum(IslastMonth)
       sum(1.0*DailySum*IsYTD) / sum(IsYTD)
from (select product, cast(dt as date) as thedate, sum(val) as DailySum
             (case when cast(dt as date) = cast(getdate() as date) then 1 else 0 end) as IsToday,
             (case when year(dt) = year(dateadd(month, -1, getdate()) and month(dt) = month(dateadd(month, -1, getdate())
                   then 1 else 0
              end) as IslastMonth,
             (case when year(dt) = year(getdate()) tehn 1 else 0
              end) as IsYTD
       from t
       group by product, cast(dt as date)
     ) t
     ) t
于 2012-12-11T23:15:09.857 に答える