![SQL查詢尋找3筆連續記錄和各自的數據](https://rvso.com/image/1585729/SQL%E6%9F%A5%E8%A9%A2%E5%B0%8B%E6%89%BE3%E7%AD%86%E9%80%A3%E7%BA%8C%E8%A8%98%E9%8C%84%E5%92%8C%E5%90%84%E8%87%AA%E7%9A%84%E6%95%B8%E6%93%9A.png)
需要選擇值 >=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 子句中刪除。