간격과 고립이 있는 연속 행의 최소값과 최대값 찾기
행으로 표시되는 이벤트 시퀀스를 포함하는 정렬된 데이터세트의 컨텍스트에서 테이블에서 작업은 동일한 이벤트 유형을 공유하는 연속 행에 대한 최소 및 최대 시간 간격을 결정하는 것입니다. 이 문제는 간격과 섬이 포함된 데이터를 처리할 때 발생하므로 기존 집계 방법으로는 충분하지 않습니다.
입력 이해
입력 테이블은 다음 열로 구성됩니다.
연속 그룹 식별
연속 행 그룹 식별 동일한 이벤트 유형을 사용하여 이벤트 유형에 대한 행 번호와 전체 행 간의 차이를 계산합니다. 번호 매기기:row_number() over (partition by name, act order by rn) as seqnum_na row_number() over (partition by name order by rn) as seqnum_n
그룹 번호를 사용한 집계
그룹 번호 사용 식별되면 시작 시간과 종료 시간을 집계하여 각 항목의 최소값과 최대값을 찾을 수 있습니다. 그룹:select name, act, min(startt) as startt, max(endd) as endd from (select i.*, row_number() over (partition by name, act order by rn) as seqnum_na, row_number() over (partition by name order by rn) as seqnum_n from input i ) i group by (seqnum_n - seqnum_na), name, act;
위 내용은 간격과 섬이 있는 연속 이벤트의 최소 및 최대 시간 간격을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!