我有一个问题,我可以使用 Stata 解决,但现在我的数据已经增长到无法再从内存中处理它的大小。我希望改为在 MySQL 中执行此操作。我正在尝试计算n组之间项目的曼哈顿距离。到目前为止,我已经对数据进行了操作,希望它可以用于计算:
SELECT * FROM exampleshares;
+----------+-------------+-------------+
| item | group | share |
+----------+-------------+-------------+
| A | group1 | .3 |
| B | group1 | .7 |
| A | group2 | .2 |
| B | group2 | .6 |
| C | group2 | .2 |
| A | group3 | .3 |
| C | group3 | .6 |
+----------+-------------+-------------+
这个例子的曼哈顿距离是:
+----------+-------------+-------------+
| groupX | groupY | M distance |
+----------+-------------+-------------+
| group1 | group1 | 0 |
| group1 | group2 | .4 |
| group1 | group3 | 1.3 |
| group2 | group1 | .4 |
| group2 | group2 | 0 |
| group2 | group3 | 1.1 |
| group3 | group1 | 1.3 |
| group3 | group2 | 1.1 |
| group3 | group3 | 0 |
+----------+-------------+-------------+
例如,group1 和 group2 之间的距离计算为 |.3-.2|+|.7-.6|+|0-.2|=0.4,即。股份绝对差额之和。我如何在 MySQL 中做到这一点?
在我的搜索过程中,如果找到了一些解决方案来按组计算与前一行的差异,但对于我正在寻找的内容却没有。