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 句から削除します。

関連情報