2016-03-24 8 views
0

のグループ化:MS SQL Server 2005の - 私はグループの次のタイプの解決策を見つけることを試みている同様のデータ

マイデータ

Formula # Date 
1   2016-01-02 12:05:00 
1   2016-01-02 12:07:00 
2   2016-01-02 12:10:00 
2   2016-01-02 12:15:00 
3   2016-01-02 12:25:00 
3   2016-01-02 12:30:00 
3   2016-01-02 12:50:00 
3   2016-01-02 12:55:00 
2   2016-01-02 13:05:00 
2   2016-01-02 13:25:00 
2   2016-01-02 13:40:00 

そして、私はこのような結果を取得しようとしています:

Formula  Count Start Date    End Date 
1   2  2016-01-02 12:05:00 2016-01-02 12:07:00 
2   2  2016-01-02 12:10:00 2016-01-02 12:15:00 
3   4  2016-01-02 12:25:00 2016-01-02 12:55:00 
2   3  2016-01-02 13:05:00 2016-01-02 13:40:00 

私はさまざまなことを試してみましたが、同様の数式の数値をロールアップすることはできますが、私がリストアップした形式で結果を整理することはできません。私はまた、開始とデータのグループの日付を終了を取得する方法が全くわからないんだけど...

任意の考えやヘルプをいただければ幸いです。..

答えて

0

以下のクエリ意志グループ式とカウントをカウントするとともに、最小値と最大値を指定します。表のデータに基づいて、式#2の2つの別個のデータ・セットがあるとわかる方法はないので、1つの行にグループ化されています。お返事のための

SELECT 
    [Formula] 
    ,COUNT([Formula]) AS [COUNT] 
    ,MIN([Date]) AS [MIN_DATE] 
    ,MAX([Date]) AS [MAX_DATE] 
FROM 
    #test_table 
GROUP BY 
    [Formula] 
+0

おかげで... これは基本的に私が始めることを思い付いた...しかし、私は私の例で説明したようなものが析出し、そのグループに取得することができませんでしたクエリました。具体的には、式2は2つの別々のグループに記録されています...最終的には、実行していた式と日付範囲の時間順リストを提供するので、式2をすべてまとめてグループ化しますこれを達成しません。 – cbabbman

+0

式の開始/中間/終了を指定する標識がある場合、これは簡単です。データが提供されていれば、それを達成するために考えられる唯一の方法は、各「式」の期間にしきい値を設定するための最小/最大時間の差にcaseステートメントを使用することです。 – hikingstick

関連する問題