phpbar.de logo

Mailinglisten-Archive

AW: Abfragestruktur - Zeitraum mit unbekanntem Startwert

AW: Abfragestruktur - Zeitraum mit unbekanntem Startwert

Tim Hildebrandt TConnect at gmx.net
Mit Sep 29 10:04:42 CEST 2004


Hallo zusammen,

erst einmal danke für Eure Rückmeldung. Dummerweise habe ich meine Frage
zeitlich etwas blöd gestellt, da ich gestern tagsüber nicht am PC sein
konnte. Daher meine Antwort jetzt erst ;-)


> > 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

Das Group By Index zersemmelt mir aber letztlich die Zugriffsmöglichkeit auf
die tatsächlichen Primärschlüssel, so dass ich meine Delinquenten nicht
eindeutig benennen kann. Der Trick mit MIN() war mir auch schon in den Kopf
gekommen, aber dann muß man ja immer noch die nachfolgenden Datensätze
identifizieren. 

Ist es möglich, eine Rückreferenz innerhalb einer einzigen Query auf eine
Spalte zu machen? Meinetwegen so:


SELECT primary, index, MIN(zeitstempel) as min_zeitstempel FROM tabelle
WHERE zeitstempel >= min_zeitstempel AND zeitstempel <= (min_zeitstempel +
1800)


Selbst wenn das funktionieren sollte, dann habe ich ja das Problem, dass ich
wirklich auch nur die Bereiche haben möchte, wo was doppelt und dreifach
innerhalb der halben Stunde vorkommt.

Angenommen, ich hätte ein erfolgreiches Verfahren, um den Schritt einmalig
vernünftig vorzunehmen oder es gäbe zufällig mal einzelne Datensätze, die
innerhalb von 30 Minten tatsächlich nur einmalig vorkommt. Dann käme mir
genau solch eine Zeile in die Quere, da das System bei MIN() natürlich immer
den kleinsten Datensatz findet. Ich bräuchte aber MIN() in Verbindung mit
der Tatsache, dass *danach* noch Zeilen in einem Zeitrahmen existieren...
Wenn nicht, sollte diese Zeile gar nicht ausgeworfen werden.


> DELETE FROM tab
> WHERE Index = [Index]
> AND Zeitstempel > Zeitstempel
> AND Zeitstempel <= Zeitstempel + 30
> 
> 

Abgesehen davon werde ich wahrscheinlich wirklich was entwickeln müssen, das
mir zunindestend den letzten Endpunkt auf meiner Zeitleiste irgendwo
speichert, um an dieser Stelle später wieder neu anfangen zu können.


Danke für Eure Unterstützung.


Grüße Tim

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive