의 그룹화하여 시퀀스 I가 다음과 같은 열 및 데이터를 포함하는 테이블 : '를 함께 D의 데이터 열에서'나는 그룹 시퀀스에 원하는SQL 쿼리 도움말 - 숫자
id dtime instance data dtype
1 2012-10-22 10000 d 1
2 2012-10-22 10000 d 1
..
7 2012-10-22 10004 d 1
..
15 2012-10-22 10000 @ 1
16 2012-10-22 10004 d 1
17 2012-10-22 10000 d 1
를 @ ' 시퀀스의 끝에서.
이 작업은 데이터의 개별 스트림 인 인스턴스 열을 통해 그룹화 할 수 있지만 스트림 내에 여러 시퀀스가있을 수 있습니다.
또한 예를 들어, 해당 인스턴스의 마지막 데이터로부터 3 초 후에 동일한 인스턴스에 데이터 열이없고 그 간격 내에 '@'가없는 경우 시퀀스를 종료하려고합니다.
커서와 while 루프를 사용하여 정확히 1000 개 행의 테이블에서 정상적으로 작동하지만이 쿼리는 결국 더 많은 행에 사용됩니다.이 두 메서드는 약 1 분 정도 걸릴 것입니다. 3-5000 행의 데이터 세트.
이 웹 사이트 및 다른 사람들을 읽으면서 세트 기반 논리가 될 수있는 것처럼 보이지만 모든 행과 비교하여 모든 행을 반복하지 않으면 필자가 원하는 것을 할 방법이 없다고 생각할 수 있습니다. 다른 '시퀀스'를 구축 할 수 있습니다.
누구든지 도움이 될 수 있거나 뭔가 할 수있는 방향으로 나를 지적하면 크게 환영 할 것입니다. :)
내가 이상적으로 데이터가 다음과 같은 형식의 출력이되고 싶습니다 :
datacount 인스턴스는 dtime lastdata (datacount가)의 행의 수를입니다
20 10000 @ 2012-10-22
19 10000 d 2012-10-22
22 10004 @ 2012-10-22
20 10022 @ 2012-10-22
에 ' 시퀀스 ('@'또는 3 초 지연까지 이어지는 데이터), (인스턴스)는 원래 테이블의 인스턴스 ID, (lastdata)는 시퀀스의 마지막 데이터 값, (dtime)은 datetime 마지막 데이터 값의 값.
질문에 게시 한 데이터의 출력은 얼마나됩니까? –
죄송합니다. 질문에이 글을 추가하는 것을 잊어 버렸습니다. 이제 수정하고 필요한 출력을 하단에 추가했습니다. – gabbiccino
원시 데이터에서 결과 집합을 작성하는 데 너무 오래 걸리는 경우 예를 들어를 사용하여 결과 집합을 바로 작성할 수 있습니다. 트리거 –