sqlserverで任意のレコードごとに最大レコード数を検索するクエリが必要です。最大カウントレコードの間隔を見つける
たとえば、クエリも終了時間の
event | max | start time | end time
1 | 2 | 25/1/2009 20:15:00 | 26/1/2009 00:15:00
5 | 1 | 10/1/2009 02:15:00 | 11/1/2009 02:15:00
が、それはです24時間以内に最後のレコードの時間だったもたらすために、私は
event | time
-----------------
1 | 25/1/2009 20:15:00
1 | 25/1/2009 23:15:00
5 | 10/1/2009 02:15:00
1 | 26/1/2009 00:15:00
1 | 30/1/2009 21:15:00
5 | 10/1/2009 23:15:00
は、私が欲しい、次の表を参照してみましょう大丈夫です。つまり、
event | max | start time | end time
1 | 2 | 25/1/2009 20:15:00 | 26/1/2009 20:15:00
5 | 1 | 10/1/2009 02:15:00 | 10/1/2009 23:15:00
どのようにsql-serverを実行できますか? 私はすでにjava-appにデータベースを接続することでこれを行っていますが、純粋なSQL Serverを使用する効率的な方法が必要です。 CTEが(時間が指定された24時間以内に収まる)のテーブルからのみ関連記録を取得します
DECLARE @StartDateTime datetime
;WITH cte AS
(
SELECT [event], [time]
FROM YourTable
WHERE [time] >= @StartDateTime
AND [time] <= DATEADD(HOUR, 24, @StartDateTime)
)
SELECT [event],
COUNT(*) As [max]
MIN([time]) As StartTime,
MAX([time]) As EndTime
FROM CTE
GROUP BY [event]
を、そして2番目のクエリは、クエリによって単純なグループである:
あなたは何を試しましたか?あなたはどこにいるのですか? MySqlまたはSqlサーバー。より具体的に、適切なタグを入力してください。 –
間違えて申し訳ありませんが、sqlserverです。私はJavaアプリケーションとデータベースを接続しようとしましたが、そこでは動作しますが、効率的な方法ではないと思います。 – Aladdin
質問は何ですか? –