テーブル (ログ アナライザー) の構造は次のとおりです。
過去 15 分間から現在の時間 (毎分) までのセッション数を表示する折れ線グラフを描画したいと考えています。次の情報を含む 2 つの列を表示するクエリを作成したいと考えています。
- 日付:時:分
- セッション数
1 時間あたりのリクエストを表示するサンプル クエリを作成しようとしました。
select convert(nvarchar(16), L.TimeLog, 120) requestTime ,(select Count(SessionID) from LogData where TimeLog < convert(nvarchar(16), TimeLog, 120) and TimeLog > DATEADD (mi , -15 , convert(nvarchar(16), TimeLog, 120) ) ) AS Sessions
from LogData L
group by convert(nvarchar(16), TimeLog, 120) order by requestTime;
上記のようなクエリを作成しようとしましたが、間違った結果が表示されます。15 分ごとに多数のセッションが表示されます。group by 句は同じままです (つまり、毎分)。たとえば、10:00:00 では、過去 15 分間のセッション数 (sessionID) を 10:00:00 に表す必要があります。つまり、9:45: 00 から 10:00:00 など