![SQL-Abfrage zum Finden von 3 aufeinanderfolgenden Datensätzen und entsprechenden Daten](https://rvso.com/image/1585729/SQL-Abfrage%20zum%20Finden%20von%203%20aufeinanderfolgenden%20Datens%C3%A4tzen%20und%20entsprechenden%20Daten.png)
Sie müssen die Daten auswählen, bei denen die Werte >=0,7 sind und mindestens 3 Mal hintereinander vorkommen.
hourly recorded per day
Hours 00 0100 0200 0300 0400 0500
ValueNumber .7 .8 .5 .4 .8 .85 so on
Das Problem ist, dass ich die Daten auswählen kann, die >=0,7 sind und 3 Mal vorkommen, aber nicht hintereinander. Für jede Hilfe bin ich sehr dankbar.
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
Wenn Sie weitere Informationen benötigen, fragen Sie bitte. Die Datenbank ist riesig und jede einzelne Spalte wird als „InterventionID“ aufgezeichnet. Oben sind die Suchkriterien aufgeführt. Sobald dies erledigt ist, kann ich dies in eine temporäre Tabelle einfügen und dann den Datensatz abrufen. Ich freue mich auf eine Lösung.
Danke
Antwort1
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
Wenn keine Serie vorhanden ist, entfernen Sie sie aus den Feldsätzen und der PARTITION BY-Klausel.