我有实验室分析结果数据库。由于分析的性质,结果只是有点随机-这在现实世界中是正常的。所有结果都以整数形式存储在数据库中(我们以ppm -百万分之一保存结果)。问题是,我想找到类似的(可能是相同的)材料分析了几次。数据库是这样的:
id |v1 |v2 |v3 |v4 |... |vn
----|----|----|----|----|----|----
1 |4560|5600|3333| 56| |0
2 |4575|5583|3354| 67| |0
3 |4565|4333|3332| 60| |0
4 | 0|5583|3333| 60| |0
id为1和2的材料相同,id为3和4的材料是唯一的。
我想给出公差+-30或其他东西来消除结果随机性并找到相同的材料。如果每个列的容差值都是单独的,那就太好了。
简化。如何要求mysql返回类似的整数与值+-一些错误值?
您肯定不希望使用SQL执行此操作。
本质上,你所做的就是计算数据库定义的图形的连接组件,其中两行如果在你定义的公差范围内,则有一条边连接它们。
假设您的数据集足够小,可以装入内存,如果它是在您的实验室中进行的样本测试的结果,那么您最好的选择是将其全部读取,然后使用合适的库来计算连接的组件。例如,在Java中,您可以使用JGraphT;如果你需要在PHP中做,那么我相信也会有可用的图形库。
在高端,对于海量数据集,有库可以在Spark集群上完成…