dedlfix: minimaler Abstand zwischen zwei Werten einer Spalte

Beitrag lesen

Hi!

SELECT * FROM tabelle AS TB1 INNER JOIN tabelle AS TB2

ON TB1.id != TB2.id ORDER BY (TB1.datum - TB2.datum)


>   
> scheint nicht zu fruchten und ist sicher auch nicht ganz das, was Du beschrieben hast, oder?  
  
Das ist schon fast das was du willst. Aber der INNER JOIN verbindet jeden Datensatz mit jedem und du schließt nur die selben aus.  
  
  abc  
-+---  
a|-++  
b|+-+  
c|++-  
  
Du hast immer noch doppelte Kombinationen, wie ab und ba, ac und ca und so weiter. Du könntest als Bedingung TB1.id < TB2.id nehmen, dann hast du alle Kombinationen nur einmal.  
  
  abc  
-+---  
a|-++  
b|--+  
c|---  
  
Als nächstes bekommst du bei der Timestamp-Differenz negative Werte. Sortiert ergibt das als ersten den Datensatz mit der größten negativen Differenz. Der Absolutwert sollte dir helfen.  
  
  
Lo!