
Необходимо выбрать данные, где значения >=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.