日付ごとにサンプリングされたさまざまなオブジェクトへのリクエスト数を返すクエリがあります。1日に複数のサンプラーが存在する可能性があります。最初のWith部分は、毎日最新のサンプルのみを取得するために使用されます。
With RankedSamples As
(
Select Id, runend
, ROW_NUMBER() OVER( PARTITION BY convert(varchar , runEnd, 1) ORDER BY runEnd DESC ) ItemRank
From t_SamplesRuns
where runend > '05/13/12' and runend < '05/18/12'
)
select sum(TotalRequests) Hits,
convert(nvarchar(10), day(smp.date)) + '-' +
convert(nvarchar(10), month(smp.date)) + '-' +
convert(nvarchar(10), year(smp.date)) date
from t_samples smp
where smp.runid in (
select id
from RankedSamples
where ItemRank = 1
)
group by convert(nvarchar(10), day(smp.date)) + '-' +
convert(nvarchar(10), month(smp.date)) + '-' +
convert(nvarchar(10), year(smp.date))
これが返すものは、例えば:
Hits date
111111 13-5-2012
222222 14-5-2012
333333 15-5-2012
444444 16-5-2012
555555 17-5-2012
返す必要があるのは、これらのフィールド+前日のヒット数とその減算(最初の行は関係ありません)です。
Hits date Prev Res
111111 13-5-2012 0 111111
222223 14-5-2012 111111 111112
333335 15-5-2012 222223 111113
444447 16-5-2012 333335 111114
555559 17-5-2012 444447 111115
何か案は?ありがとう!