Mailinglisten-Archive |
Tim Hildebrandt schrieb: > Hallo Liste, > > ich habe mal eine Frage zu einer SQL-Query, die ich selbst noch nicht > hinbekommen habe. Ich habe eine Reihe von Statistikdaten, die einen > textalischen Index sowie einen Zeitstempel (via PHP-Funktion "time()") > besitzen. Jetzt kommt es innerhalb eines Zeitintervalls vor, dass einige > dieser textalischen Indizes meinetwegen einer halben Stunde mehrfach > auftreten. Diese identischen Indizes möchte ich zeitabhängig herausfinden. > Jetzt habe ich aber das Problem, dass ich den Startzeitpunkt nicht kenne. > Damit meine ich, dass die Eingaben der statistischen Daten irgendwann > begonnen haben und irgendwann auch wieder aufgehört haben und dazwischen > eine gewisse Zeit verstrichen ist. > > Ich bräuchte also eigentlich eine solche Abfrage: > > "Suche alle Datensätze gruppiert nach meinem Index (nicht Primärindex!), die > irgendwann erstmalig in der Tabelle vorhanden sind und die dann maximal eine > halbe Stunde lang nach hinten hin eingegeben wurden" > > Zutreffend könnte sein: > > Index Zeitstempel ID > ---------------------------------------- > xxxxxxxxxxx N 349 > xxxxxxxxxxx N+234 1384 > xxxxxxxxxxx N+500 2345 > [...] > xxxxxxxxxxx N+1800 6937 > ---------------------------------------- > > > Wobei N eine beliebige Startzeit in der Linux-Epoche ist, aber eben > unbekannt ist. > > Ziel ist es, dass ich davon ausgehe, dass eine Sitzung während der Eingabe > eben immer nur 30 Minuten gedauert hat und ich innerhalb dieses Zeitraums > alle doppelten Keys einfach wegstreichen kann, da diese für mich dann keine > weitere Relevanz haben. Sprich: Ich verschlange damit die Anzahl der > Datensätze und lasse immer nur den jeweils ersten gefundenen Key stehen, > wobei ich alle späteren Keys anhand ihrer jeweiligen Primären ID's > identifiziere und lösche. Hole Anfangszeiten SELECT Index,MIN(Zeitstempel) FROM tab GROUP BY Index DELETE FROM tab WHERE Index = [Index] AND Zeitstempel > Zeitstempel AND Zeitstempel <= Zeitstempel + 30 das ist nur schematisch, wie das nun genau umsetzt, ob mit temp-tabellen, oder subquerys, oder multi-table deletes, oder sonstwas ist dir überlassen -- Sebastian Mendel www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com www.sf.net/projects/phpdatetime www.sf.net/projects/phptimesheet -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive