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 でこれを行うにはどうすればよいですか?
私の検索中に、グループごとに前の行との差を計算するためのいくつかの解決策が見つかりましたが、特に探しているものには何もありません。