Consulta SQL para encontrar 3 registros consecutivos e respectivos dados

Consulta SQL para encontrar 3 registros consecutivos e respectivos dados

É necessário escolher os dados onde os valores são> = 0,7 e aparecem pelo menos 3 vezes consecutivas

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

O problema é que posso escolher os dados que são> = 0,7 e aparecem 3 vezes, mas não são consecutivos. Qualquer ajuda muito apreciada.

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

Se precisar de mais informações, por favor pergunte. O banco de dados é enorme e cada coluna é registrada como "InterventionID". Acima estão os critérios de pesquisa. Uma vez feito isso, posso colocar isso na tabela temporária e depois extrair o registro. Ansioso por algum tipo de solução.

Obrigado

Responder1

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

Se não houver série, remova-a dos conjuntos de campos e da cláusula PARTITION BY.

informação relacionada