Sven Rautenberg: Wie finde ich mit SQL den "am nächsten gelegenen" Wert?

Beitrag lesen

Moin!

select min(abs(Datum-unix_timestamp('2006-7-1'))) from werte;

Aber ich schaffe es nicht, mir gleichzeitig die Nummer (ID) des entsprechenden Datensatzes ausgeben zu lassen.

Wird auch schwierig, weil Aggregatfunktionen GROUP BY erfordern - und GROUP BY löst den Zusammenhalt zwischen Spalten auf.

Sortiere einfach die Spalte der Differenzen aufsteigend, und nimm den ersten Wert. Das ist der kleinste. Parallel kannst du dann auch die ID nehmen.

- Sven Rautenberg

--
"Love your nation - respect the others."