![SQL-запрос для поиска 3 последовательных записей и соответствующих данных](https://rvso.com/image/1585729/SQL-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0%203%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9%20%D0%B8%20%D1%81%D0%BE%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.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.