phpbar.de logo

Mailinglisten-Archive

select...

select...

Christoph 'Le o' Weißenborn chw-le at gmx.de
Die Nov 16 13:14:39 CET 2004


Hallo Reinhold,

Zitiere Reinhold Jordan <r.jordan at asc.de>:
> ich suche für folgende Tabelle einen Select:
> CREATE TABLE `traffic_eth` (
>   `timestamp` timestamp(14) NOT NULL,
>   `receive` int(11) NOT NULL default '0',
>   `transmit` int(11) NOT NULL default '0',
>   PRIMARY KEY (`timestamp`)
> ) TYPE=MyISAM;
> 
> Und zwar hätte ich gerne sowas wie das hier:
> select timestamp, (receive-letztem_receive),
> (transmit-letztem_transmit) from traffic_eth
> 
> Geht das ohne großen Aufwand? Ich denke, das Problem wird
> sein, daß der Abstand zwischen den timstamps nicht immer
> exact gleich sind.

Wenn es mit einer Abfrage gehen soll, dann nur über ein
passendes Join auf der Tabelle selbst... aber das ist
kompliziert, wenn es überhaupt geht.

Ich würde eine temporäre Tabelle anlegen, die Datensätze
nach timestamp sortiert und mit fortlaufender ID eintragen.
(Spalte: id INT NOT NULL DEFAULT NULL AUTOINCREMENT)
Dann kannst Du ganz einfach von Zeitpunkt t zum vorigen
gehen, indem Du einfach ID-1 nimmst.

Das Select auf dem Temp-Table ist dann quasi so, wie Du es
schon angedeutet hast.

Die fortlaufenden ID in die Tabelle selbst einzufügen ginge
auch - nur müssen die wirklich fortlaufend sein, auch wenn
mal eine Zeile gelöscht oder der timestamp nicht der Reihe
nach eingefügt wird. In der Praxis also lieber die Lösung
mit dem Temp-Table.


Grüße,
 Christoph Weißenborn
-- 
Fingerprint=65B7 73B6 5969 AC2B 4572 39A2 0DBC DAC1 3D6A 45B7
email auch: chw- at gmx.de / mai01dzr at ...

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


php::bar PHP Wiki   -   Listenarchive