그룹 별 누적 시차

무한대

다음과 같은 테이블 구조가 있습니다.

DECLARE @XTable TABLE 
(
  ColA Varchar(20), 
  ColB Varchar(20),
  DateCol DATE
)

INSERT INTO @XTable 
VALUES
    ('A', 'X1', '4/1/2015'), ('A', 'X2', '4/10/2015'), ('A', 'X3', '4/12/2015'),
    ('A', 'X4', '4/16/2015'), ('B', 'X1', '5/18/2015'), ('B', 'X2', '5/20/2015')

예상 출력 :

/*
    ColA   ColB  DateCol      Diff
    A       X1    4/1/2015    0
    A       X2    4/10/2015   9
    A       X3    4/12/2015   2
    A       X3    4/12/2015   11
    A       X4    4/16/2015   15
    A       X4    4/16/2015   5
    A       X4    4/16/2015   4
    B       X1    5/18/2015   0
    B       X2    5/20/2015   12
*/

예 : X4는 A X1, A X2 및 A X3 & A X3는 A X1 & A X2와 날짜 차이가 있습니다.

아래 쿼리를 통해 마지막 행과 차이를 얻을 수 있습니다.

;WITH Dataf
    AS (
    SELECT 
        *,
        ROW_NUMBER() OVER (ORDER BY  ColA,ColB, DateCol) AS RowNum
    FROM 
        @XTable
    )

    SELECT a.ColA, a.ColB, SUM(DATEDIFF(Dd,b.DateCol,a.DateCol)) as TotalTime
    FROM 
     Dataf AS A
     LEFT OUTER JOIN Dataf AS B   
                ON A.RowNum = B.RowNum + 1 and a.ColA = b.ColA
    GROUP BY a.ColA, a.ColB

여러 CTE를 적용 할 생각, 지금 작업중인 내용은 다음과 같습니다.

;WITH Dataf
AS (
SELECT 
    *,
    ROW_NUMBER() OVER (PARTITION BY ColA ORDER BY  DateCol) AS RowNum
FROM 
    @XTable
),

CTE AS 
(
   SELECT ColA, ColB, DateCol, RowNum, NULL AS DateDifference
   FROM Dataf WHERE RowNum = 1
   UNION ALL
   SELECT DF.ColA, DF.ColB, DF.DateCol, DF.RowNum ,
            DATEDIFF(DD, CT.DateCol, DF.DateCol) AS DateDifference
   FROM Dataf DF
    JOIN  CTE CT ON DF.ColA = CT.ColA AND   DF.RowNum = CT.RowNum + 1

)
SELECT * 
FROM CTE 
ORDER BY ColA
Anuj 트리 파티

대신 준비한 CTE에 LEFT OUTER JOIN을 사용할 수 있습니다. 방법은 다음과 같습니다.

    ;WITH DataForm
    AS (
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY Cola ORDER BY  DateCol) AS RowNum
    FROM 
        @XTable
    )


SELECT ColA, ColB, DateCol, 0
FROM DataForm WHERE RowNum = 1
UNION
SELECT T1.ColA, T1.ColB, T1.DateCol
, DATEDIFF(dd,T2.DateCol, T1.Datecol) 
FROM DataForm T1
LEFT OUTER JOIN DataForm T2 ON T1.ColA = T2.ColA            
    AND T1.RowNum >= T2.RowNum 
WHERE DATEDIFF(dd,T2.DateCol, T1.Datecol) > 0

SQL Fiddler 예

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

팬더 그룹 별 합계 차이 시프트 누적 합계

분류에서Dev

그룹 별 R의 누적 합계 및 그룹의 값 합계가 최대 값보다 클 때 다시 시작

분류에서Dev

그룹 별 이벤트 시간 차이

분류에서Dev

팬더 그룹 별, 누적 합계 및 범주 별 플롯

분류에서Dev

행별로 그룹 별 누적 합계를 얻는 방법

분류에서Dev

팬더 그룹 별 누계, 시간 간격

분류에서Dev

그룹 별 쿼리 및 누락 된 개수 계산 Google 시트

분류에서Dev

그룹별로 두 번째로 높은 누적 값 계산

분류에서Dev

SQL : 그룹 별 지난 30 일 동안의 누적 합계

분류에서Dev

그룹 별 시계열

분류에서Dev

시간별 SQL 그룹

분류에서Dev

시즌 별 MySQL 그룹화

분류에서Dev

지속적인 시간별로 사용자 활동 그룹화

분류에서Dev

지속적인 시간별로 사용자 활동 그룹화

분류에서Dev

시차 별 Pandas 시간 인덱스 DataFrame 그룹

분류에서Dev

분기 시간별로 그룹화 된 시작 중지 차이

분류에서Dev

HighCharts 누적 그룹 차트-Grouped Caregories 플러그인 포함

분류에서Dev

pandas 그룹 별 시간 합계 일별

분류에서Dev

Highcharts : 그룹화 된 열 차트-그룹 별 비 NA 시리즈 만 플롯

분류에서Dev

PlantUML 시퀀스 다이어그램의 개별 그룹에 skinparam 적용

분류에서Dev

Plotly : 그룹화 및 누적 막대 차트, 누적 막대의 다른 색상?

분류에서Dev

MYSQL : 다른 그룹별로 시퀀스에서 누락 된 값 찾기

분류에서Dev

월 및 연도 별 날짜 시간 차이 그룹

분류에서Dev

dplyr을 사용하여 그룹 별 평균 시차 계산

분류에서Dev

로그인 시도 실패, 지속적인 무차별 대입

분류에서Dev

python plotly-누적 + 그룹 막대 차트

분류에서Dev

ggplot 막대 차트의 그룹화 / 누적 요인 수준

분류에서Dev

highcharts 예제의 누적 그룹 세로 막 대형 차트

분류에서Dev

JSON 개체에서 연도, 월, 일별로 그룹화 된 누적 합계

Related 관련 기사

  1. 1

    팬더 그룹 별 합계 차이 시프트 누적 합계

  2. 2

    그룹 별 R의 누적 합계 및 그룹의 값 합계가 최대 값보다 클 때 다시 시작

  3. 3

    그룹 별 이벤트 시간 차이

  4. 4

    팬더 그룹 별, 누적 합계 및 범주 별 플롯

  5. 5

    행별로 그룹 별 누적 합계를 얻는 방법

  6. 6

    팬더 그룹 별 누계, 시간 간격

  7. 7

    그룹 별 쿼리 및 누락 된 개수 계산 Google 시트

  8. 8

    그룹별로 두 번째로 높은 누적 값 계산

  9. 9

    SQL : 그룹 별 지난 30 일 동안의 누적 합계

  10. 10

    그룹 별 시계열

  11. 11

    시간별 SQL 그룹

  12. 12

    시즌 별 MySQL 그룹화

  13. 13

    지속적인 시간별로 사용자 활동 그룹화

  14. 14

    지속적인 시간별로 사용자 활동 그룹화

  15. 15

    시차 별 Pandas 시간 인덱스 DataFrame 그룹

  16. 16

    분기 시간별로 그룹화 된 시작 중지 차이

  17. 17

    HighCharts 누적 그룹 차트-Grouped Caregories 플러그인 포함

  18. 18

    pandas 그룹 별 시간 합계 일별

  19. 19

    Highcharts : 그룹화 된 열 차트-그룹 별 비 NA 시리즈 만 플롯

  20. 20

    PlantUML 시퀀스 다이어그램의 개별 그룹에 skinparam 적용

  21. 21

    Plotly : 그룹화 및 누적 막대 차트, 누적 막대의 다른 색상?

  22. 22

    MYSQL : 다른 그룹별로 시퀀스에서 누락 된 값 찾기

  23. 23

    월 및 연도 별 날짜 시간 차이 그룹

  24. 24

    dplyr을 사용하여 그룹 별 평균 시차 계산

  25. 25

    로그인 시도 실패, 지속적인 무차별 대입

  26. 26

    python plotly-누적 + 그룹 막대 차트

  27. 27

    ggplot 막대 차트의 그룹화 / 누적 요인 수준

  28. 28

    highcharts 예제의 누적 그룹 세로 막 대형 차트

  29. 29

    JSON 개체에서 연도, 월, 일별로 그룹화 된 누적 합계

뜨겁다태그

보관