Alle Datensätze, die in einem Zeitfenster vorkommen

31/08/2007 - 12:02 von jeff | Report spam
Ich habe eine Tabelle in der Aktionen verzeichnet werden.
BSP:
Müller 28.8.2007 8:45 AktionA
Maier 28.8.2007 8:45 AktionB
Müller 28.8.2007 8:47 AktionA
Müller 28.8.2007 8:48 AktionB
Huber 28.8.2007 8:51 AktionC
Müller 28.8.2007 9:30 AktionC
...

Ich möchte nun alle Namen haben, die innerhalb eines Zeitfenster von 5
Minuten mehrere gleiche Aktionen hatten. Sprich mich interessieren nach
obigem Beispiel nur die erste und 3 Zeile .
Mit einem Cursor wàre das schon machbar ist aber nicht wirklich
performant.
Hat jemand eine Idee ?
 

Lesen sie die antworten

#1 Matthias Schuppe
31/08/2007 - 12:33 | Warnen spam
Vorschlag, ungetestet:

SELECT Name,
DATEADD(minute, ((DATEDIFF(minute, '20070101', DatumUhrzeit) / 5) *
5), '20070101') AS FuenfMinuten,
Aktion,
COUNT(*) AS AnzahlAktionen
FROM Tabelle
GROUP BY Name,
DATEADD(minute, ((DATEDIFF(minute, '20070101', DatumUhrzeit) / 5) *
5), '20070101'),
Aktion
HAVING (COUNT(*) > 1)

Man könnte auch ein Feld "FuenfMinuten" in die Tabelle einbauen und
beim "INSERT" entsprechend füllen, dann wàre die Abfrage einfacher
(und möglicherweise schneller).

Gruß,

Matthias

Ähnliche fragen