다음과 같은 Oracle 11.2 테이블이 있습니다.Oracle SQL 그룹 메시지 간격
MSG_ID JOB_ID STATUS CREATION_DATE
1 101 SUB 03/30/2011 14:39:52
2 101 SUB 03/30/2011 14:44:37
3 101 RCVD 03/31/2011 14:41:49
4 101 ACCPTD 03/31/2011 14:59:51
5 101 DESIGN 03/31/2011 17:44:37
6 101 REVIEW 03/31/2011 17:44:50
7 101 (null) 04/01/2011 07:51:41
8 101 REJECTED 04/01/2011 07:56:56
9 101 (null) 04/01/2011 16:36:19
10 101 REVIEW 04/01/2011 16:43:49
11 101 APPROVED 04/04/2011 07:55:45
12 101 (null) 04/04/2011 08:14:23
13 101 REJECTED 04/04/2011 14:46:17
14 101 REVIEW 04/04/2011 14:50:50
15 101 (null) 04/04/2011 14:51:27
16 101 REVIEW 04/04/2011 14:57:50
17 101 (null) 04/04/2011 15:34:50
18 101 APPROVED 04/04/2011 15:41:21
19 101 (null) 04/04/2011 15:41:23
20 101 REJECTED 04/04/2011 15:41:24
21 101 REVIEW 04/04/2011 16:07:52
22 101 (null) 04/05/2011 08:50:35
23 101 APPROVED 04/05/2011 10:54:51
24 101 PROD 04/05/2011 11:08:50
25 101 COMPLET 04/06/2011 20:09:49
고유 한 상태 조합 간의 메시지 상태 및 시간 간격을 인접한 (생성 날짜와 관련하여) 그룹화하려고합니다. Null 상태는 무시할 수 있습니다. 결과는 다음과 같습니다.
JOB_ID FROM_STATUS TO_STATUS TIME_INTERVAL
101 SUB RCVD sum of time intervals
101 RCVD ACCPTD sum of time intervals
101 ACCPTD DESIGN sum of time intervals
101 DESIGN REVIEW sum of time intervals
101 REVIEW REJECTED sum of time intervals
101 REJECTED REVIEW sum of time intervals
101 REVIEW APPROVED sum of time intervals
101 APPROVED REJECTED sum of time intervals
101 APPROVED PROD sum of time intervals
101 PROD COMPLETE sum of time intervals
누군가가이 작업에 필요한 SQL을 도울 수 있습니까?
고맙습니다.
여러 레코드가 있습니다. 작업 ID 101에는 상태가 sub 인 2 개의 레코드가 있습니다. 어느 쪽을 사용 하시겠습니까? –
@Joe. . . 시간 간격의 합은 어떻게 정의합니까? –
@Dan, 인접한 dups의 경우 하위와 마찬가지로 가장 초기의 dup을 사용하고 싶습니다. – Joe