Inexact table join?

If I have a table A:

5 12 8 10

6 13 9 11

7 14 10 12


And a table B:

5.001 12 8 200

5.999 13 9 300

7.0001 14 10 400


Is there a tool I could use in KNIME where I can join the rows by saying "5.001 is close enough to 5 to be joined into one row" - or more so "join rows where column A from table A is within +/- X of column A from table B"?

The Joiner tool does not seem to have this flexibility.  Building a third table where we average the A columns between the two tables and then linking them back would be fine, I'm not sure if that is the best way to do this though.


Not sure KNIME will do it for you. Anyway, round your 5.001 to necessary number. Say, you may have decoding table:

from 4.8 to 5.3 -> 5 so on. and after assigning a key join tables.

If your tables aren't too big then the most general way of doing this would be to do a Cross Join of the two tables, giving you every combination of the rows from table A and the rows from table B, then use a Rule-based Row Filter to keep only the rows where the difference between the two columns is less than your chosen tolerance.

If the cross join of the two tables is too big to do in one go then you could wrap this in a Chunk Loop.