将数字分组在相似的范围内

时间:2011-11-10 06:38:57

标签: mysql math group-by

我有这些记录

   id| num
   1 | 2.21231
   2 | 2.21234
   3 | 2.21228
   4 | 3.452
   5 | 3.45205
   6 | 3.45195

我希望将选择项目分组,其中存在.00005或更小的差异,因此在这种情况下1& 2,1& 3,4& 5,4& 6或者如果不可能(1,2,3)和(3,4,5) 这有可能只用mysql吗?

修改 排除的可能性

  • ROUND:false negative 0.000040.00005
  • TRUNCATEFLOORCEIL:误报0.000010.00009误报0.000090.0011

2 个答案:

答案 0 :(得分:3)

你的意思是,像这样? :

SELECT t1.id,
       t2.id
  FROM the_table t1
  JOIN the_table t2
    ON t1.id < t2.id
   AND ABS(t1.num - t2.num) <= .00005
;

答案 1 :(得分:1)

您可以使用TRUNCATE功能分组:

select ..... group by TRUNCATE(num, 4);