SQL查詢尋找3筆連續記錄和各自的數據

SQL查詢尋找3筆連續記錄和各自的數據

需要選擇值 >=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 子句中刪除。

相關內容