2

私は次のような列を持つテーブルを持っています:

ItemId   Date        CountUser       CountUserPast7Days
1        20120101    20              null
1        20120102    15              null
1        20120208    12              null
2        20120209    65              null
2        20120611    32              null
2        20120615    20              null
3        20120901    45              null

2つのパラメーター(ItmeIdとDate(過去7日間)のデータでgroup)に基づいてCountUserPast7Daysを更新し、列CountUserを合計するクエリを作成します。したがって、データは次のようになります-

ItemId   Date        CountUser    CountUserPast7Days
1        20120101    20           20 
1        20120102    15           35 
1        20120208    12           27 
2        20120209    65           65
2        20120611    32           32
2        20120615    20           52
3        20120901    45           45
4

1 に答える 1

3

2012/01/02と2012/02/08の間に1か月以上あるため、出力例はバグがありますが、私はあなたの主張をまったく同じように理解しました。あなたが探しているのは自己参加です:

SELECT S1.Item, S1.Date, SUM(S2.Count) As CountPast7 FROM SlidingHitCount S1
  INNER JOIN SlidingHitCount S2 on S1.Item = S2.Item
WHERE S2.Date BETWEEN DATEADD(dd, -7, S1.Date) AND S1.Date
GROUP BY S1.Item, S1.Date

明らかに、私はあなたのテーブルを「SlidingHitCount」と呼びました。

于 2012-09-12T05:16:42.583 に答える