2016-06-28 5 views
1

内の最小値との差を計算する:は、次の表を与えられたグループ

| id| Date | 

| 1 | 04-01-2016 | 
| 1 | 04-07-2016 | 
| 1 | 04-09-2016 | 
| 2 | 04-06-2016 | 
| 2 | 04-03-2016 | 
| 2 | 04-10-2016 | 

Iは、毎日およびIDグループ内の最小の日の間の日数の列を持っていると思います。窓関数とDATEDIFFを使用することにより

id | date  | day_count 
    ---+------------+------------ 
    1 | 04-01-2016 |  0 (days between 04-01-2016 and 04-01-2016) 
    1 | 04-04-2016 |  3 (days between 04-04-2016 and 04-01-2016) 
    1 | 04-08-2016 |  7 
    2 | 04-17-2016 |  14 (days between 04-017-2016 and 04-03-2016) 
    2 | 04-03-2016 |  0 
    2 | 04-10-2016 |  7 

答えて

2

我々は十分に感謝することはできません結果

DECLARE @Table1 TABLE 
    (id int, date datetime) 
; 

INSERT INTO @Table1 
    (id, date) 
VALUES 
    (1, '2016-04-01 05:30:00'), 
    (1, '2016-04-04 05:30:00'), 
    (1, '2016-04-08 05:30:00'), 
    (2, '2016-04-03 05:30:00'), 
    (2, '2016-04-17 05:30:00'), 
    (2, '2016-04-20 05:30:00') 
; 

スクリプト

select * 
,  datediff(day, min(Date) over (partition by [ID]), Date)Cnt 
from @Table1 
+0

の下に達成することができます! Ps。どのようにして、上記のテーブルを読み込み可能な形式で、stackoverflowでフォーマットしますか? – labrynth

+0

編集ボックスで私は{}コードフォーマットのオプションを選択してください。この回答があなたに役立つならば、 – mohan111

+0

をクリックしてください。@labrynth – mohan111

関連する問題