2016-06-28 3 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 | 

내가 매일하고 아이디 그룹 내에서 최소 일 사이의 날짜 수에 열을 가지고 싶습니다. 윈도우 기능 및 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

이하로 달성 할 수있다! 추신. 어떻게 하나 stackoverflow에서 읽을 수있는 형식으로 위의 테이블을 포맷하나요? – labrynth

+0

편집 상자에서 {} 코드 형식 옵션이 필요합니다.이 대답을 사용하면 도움이 될 경우 – mohan111

+0

을 클릭하십시오. @labrynth – mohan111