0

2 つの列 ChangedTime、FileName を持つ 1 つの変更レポート テーブルがあります。ここに画像の説明を入力

このテーブルには 1000 を超えるレコードがあることを考慮してください

ここでは、次の要因に基づいてすべての変更を照会する必要があります

i) Interval (i.e-1mins )
ii) No of files

これは、間隔 1 分とファイル数 10 を指定した場合を意味します。1 分間隔のいずれかで変更されたファイルの数が 10 を超える場合、その 1 分間隔内に存在するすべての変更されたファイルを取得する必要があります。

例:

  i) Consider we have 15 changes in the interval 11:52 to 11:53
  ii)And consider we have 20 changes in the interval 12:58 to 12:59

これで、期待される結果は 35 レコードになります。

前もって感謝します。

4

3 に答える 3

0
select count(*) from (select a.FileName, 
b.ChangedTime startTime, 
a.ChangedTime endTime, 
DATEDIFF ( minute , a.ChangedTime , b.ChangedTime ) timeInterval
from yourtable a, yourtable b
where a.FileName = b.FileName
and a.ChangedTime > b.ChangedTime
and DATEDIFF ( minute , a.ChangedTime , b.ChangedTime ) = 1) temp
group by temp.FileName
于 2013-07-02T14:08:55.430 に答える
0

このようなものが機能するはずです。関数を使用してレコードの数を数えCOUNT()ます。WHERE次に、句で選択を制限します。

SELECT COUNT(FileName) 
FROM "YourTable" 
WHERE ChangedTime >= "StartInteval" 
  AND ChangedTime <= "EndInterval";

where 句で役立つ別の方法は、 http BETWEEN: //msdn.microsoft.com/en-us/library/ms187922.aspxです。

使用している SQL DB を指定しなかったため、MSSQL を想定しています。

于 2013-07-02T13:52:32.233 に答える