2017-01-26 4 views
0

기본적으로 열이 특정 범위 내에있는 그룹의 수를 계산하려고합니다.숫자 열이 특정 범위 내에있는 그룹 수를 계산하는 방법?

예 :

DATA: 
COL1:   COL2: 
CC2SYS_LOAD  2239 
CC2SYS_LOAD  2307 
CC2SYS_LOAD  2316 
CC2SYS_LOAD  7164 
CC2SYS_LOAD  7169 
CC2SYS_LOAD  7179 

내가 COL2의 값이 서로 900로 떨어질 경우 3 개 기록의 두 그룹이 있기 때문에 2의 수를 반환하는 데 필요합니다.

100 초가 될 수도 있고 없을 수도 있습니다.

+0

세 개의 다른 행의 값이 (1000, 1899, 2798)이면 어떻게됩니까? 같은 그룹에 속한다고 생각하나요? – Boneist

+0

col2의 암시 적 순서가있는 서로 900 개의 행을 찾고 있습니까? – BobC

+0

@ 골리앗 그 질문은 질문하지 않았다. 나는 그렇게 생각하지 않는다. 나는 그 고객에게 물어볼 것이다. – carny666

답변

1

이 시도 : 다음 그룹의 시작을 표시

select 
    sum(flag) + 1 
from (
    select 
     case when col2 - lag(col2,1,col2) over (order by col2) > 900 then 1 end flag 
    from your_table 
) t 

플래그 (윈도우 함수 lag를 사용하여 구축).

+0

대단히 감사합니다! – carny666