我有实验室分析结果的数据库。由于分析的性质,结果只是有点随机-这在现实世界中是正常的。所有结果都以整数形式存储在数据库中(我们将结果保存在ppm - part 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| |0id为%1和%2的物料相同,物料%3和%4唯一。
我想给容差+-30或其他东西,以消除结果的随机性,并找到相同的材料。对于每一列,容差值可以是单独,这可能很好。
为了简化。如何让mysql返回类似的带value +-某个错误值的整数?
发布于 2016-10-12 17:28:04
你真的不想使用SQL来做这件事。
本质上,您所做的是计算由数据库定义的图形的connected components,其中,如果两行在您定义的容差范围内,则有一条连接它们的边。
假设您的数据集足够小,可以放入内存中,如果它是在您的实验室中进行的样本测试的结果,那么您最好的选择是读取所有数据,然后使用合适的库来计算连接的组件。例如,在Java语言中,您可以使用JGraphT;如果您需要在PHP语言中执行此操作,那么我相信也会有图形库可供使用。
在高端,有大量的数据集,有库可以在Spark集群上做到这一点……
https://stackoverflow.com/questions/39994690
复制相似问题