Ich habe Daten im folgenden Format und möchte es im zweiten Format ausgeben. Ich habe versucht, ein Self-Join auf die Daten und gruppieren nach ID, Zeit und Ereignis, aber nichts, was ich versucht habe, scheint richtig zu funktionieren.Abfrage, um maximale Zeit von einer Gruppe für jede Gruppe zu erhalten
Die Zeit bei EV-2 ist die Startzeit und die Zeit bei EV-5 ist die Endzeit. EV-5-Zeit kann als Endzeit für jedes EV-2-EV-5-Ereignis geschrieben werden.
Danke für jede Anleitung mit dieser Angelegenheit.
ID TIME EVENT
1 2016-03-21 12:30:00.000 EV-1
1 2016-03-21 12:30:30.000 EV-2
1 2016-03-21 12:33:00.000 EV-3
1 2016-03-21 12:33:00.000 EV-4
1 2016-03-21 12:33:45.000 EV-5
1 2016-03-21 12:33:50.000 EV-1
1 2016-03-21 12:33:55.000 EV-2
1 2016-03-21 12:35:15.000 EV-3
1 2016-03-21 12:35:15.000 EV-4
1 2016-03-21 12:40:20.000 EV-5
2 2016-03-21 12:40:50.000 EV-1
2 2016-03-21 12:41:25.000 EV-2
2 2016-03-21 12:41:25.000 EV-3
2 2016-03-21 12:42:13.000 EV-4
2 2016-03-21 12:47:35.000 EV-5
Output
ID TIME(startTime) EVENT endTime
1 2016-03-21 12:30:00.000 EV-1
1 2016-03-21 12:30:30.000 EV-2 2016-03-21 12:33:45.000
1 2016-03-21 12:33:00.000 EV-3 2016-03-21 12:33:45.000
1 2016-03-21 12:33:00.000 EV-4 2016-03-21 12:33:45.000
1 2016-03-21 12:33:45.000 EV-5 2016-03-21 12:33:45.000
1 2016-03-21 12:33:50.000 EV-1
1 2016-03-21 12:33:55.000 EV-2 2016-03-21 12:40:20.000
1 2016-03-21 12:35:15.000 EV-3 2016-03-21 12:40:20.000
1 2016-03-21 12:35:15.000 EV-4 2016-03-21 12:40:20.000
1 2016-03-21 12:40:20.000 EV-5 2016-03-21 12:40:20.000
2 2016-03-21 12:40:50.000 EV-1
2 2016-03-21 12:41:25.000 EV-2 2016-03-21 12:47:35.000
2 2016-03-21 12:41:25.000 EV-3 2016-03-21 12:47:35.000
2 2016-03-21 12:42:13.000 EV-4 2016-03-21 12:47:35.000
2 2016-03-21 12:47:35.000 EV-5 2016-03-21 12:47:35.000
Was ich versucht habe:
select d.ID, d.TIME, d.EVENT, max(dd.TIME) endTime
from dataTable d
inner join dataTable dd on d.ID = dd.ID and d.EVENT = dd.EVENT and d.TIME < dd.TIME
group by d.ID, d.TIME, d.EVENT
Was Ihr DBMS ist? – Siyual
Können Sie Ihre versuchte Abfrage anzeigen? –
Select d.ID, d.TIME, d.EVENT, max (dd.TIME) endTime von datatable d Exklusionsverknüpfung datatable dd auf d.ID dd.ID = und d.EVENT dd.EVENT = und d.TIME