Tom: minimaler Abstand zwischen zwei Werten einer Spalte

Beitrag lesen

Hello,

Welche Systemvariablen meinst du?

Tschuldigung, ich meinte User-Variablen. :-)

CREATE TABLE zeit (
  id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  zeitstempel bigint(20) DEFAULT NULL,
  bemerkung varchar(20) DEFAULT NULL,
   PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 |

set @z1:=0;

select zeitstempel, if(zeitstempel-@z1 > @z1, @z1:=zeitstempel-@z1,@z1) as diff from zeit;
+-------------+---------+
| zeitstempel | diff    |
+-------------+---------+
|        1000 |    1000 |
|       11000 |   10000 |
|      111000 |  101000 |
|     1511000 | 1410000 |
|         100 | 1410000 |
|         200 | 1410000 |
|         400 | 1410000 |
+-------------+---------+
7 rows in set (0.01 sec)

mysql> select zeitstempel, (zeitstempel-@z1) as diff, @z1:=zeitstempel as z1 from zeit order by zeitstempel;
+-------------+----------+---------+
| zeitstempel | diff     | z1      |
+-------------+----------+---------+
|         100 | -1510900 |     100 |
|         200 |      100 |     200 |
|         400 |      200 |     400 |
|        1000 |      600 |    1000 |
|       11000 |    10000 |   11000 |
|      111000 |   100000 |  111000 |
|     1511000 |  1400000 | 1511000 |
+-------------+----------+---------+
7 rows in set (0.00 sec)

eventuell in Temp-Table schreiben und dann das Minimum abfragen

Ginge das auch als Subselect?

Die Sortierung muss ja über `zeitstempel´ laufen, weil sonst nicht die Differenz zwischen zwei Folgeelementen gebildet würde...

Das Sortieren über diff ist im ersten Schritt also nicht sinnvoll.

Die ID sollte man natürlich auch mit abfragen ;-)
Hab ich aber hier nicht gemacht.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de