3개의 연속 레코드와 각 데이터를 찾는 SQL 쿼리

3개의 연속 레코드와 각 데이터를 찾는 SQL 쿼리

값이 0.7보다 크고 3회 이상 연속해서 나타나는 데이터를 선택해야 합니다.

            hourly recorded per day
Hours         00    0100  0200   0300   0400   0500 
ValueNumber   .7    .8    .5     .4     .8     .85     so on

문제는 0.7보다 크고 3번 나타나지만 연속적이지 않은 데이터를 선택할 수 있다는 것입니다. 도움을 주시면 감사하겠습니다.

select distinct  encounterId, COUNT(valueNumber) 
FROM table pta 
where interventionId in (2201,2202)
  and pta.valueNumber >=0.7
  and pta.valueNumber is not null
group by encounterId 
having COUNT(hours)>=3

더 많은 정보가 필요하면 물어보세요. 데이터베이스는 거대하며 모든 단일 열은 "InterventionID"로 기록됩니다. 위의 검색 기준은 이 작업이 완료되면 이를 임시 테이블에 넣은 다음 기록을 가져올 수 있습니다. 어떤 종류의 해결책을 기대합니다.

감사해요

답변1

WITH cte AS ( SELECT series,
                     date_time,
                     value, 
                     LEAD(value) OVER (PARTITION BY series 
                                       ORDER BY date_time) lead1, 
                     LEAD(value, 2) OVER (PARTITION BY series 
                                          ORDER BY date_time) lead2
              FROM datatable 
              WHERE value >= 0.7 )
SELECT series, date_time, value
FROM cte
WHERE lead1 >= 0.7
  AND lead2 >= 0.7

시리즈가 없으면 필드 세트 및 PARTITION BY 절에서 제거하십시오.

관련 정보