2016-10-14 6 views
0

共同出現行列を実行するために参加し、私は、共出現マトリクスを作成するための素晴らしい解決策があるスタックオーバーフローですでに密閉ケースに豚ラテンインナー

Making a co-occurrence matrix from mysql database in MYSQL, PHP or R

をピギーバックするつもりです

id  uid 
1   a 
1   b 
1   c 
2   a 
2   b 
2   c 
3   b 
3   c 

結果で:表が与え

SELECT a.uid first_uid, b.uid second_uid, COUNT(*) cnt 
FROM  my_table a JOIN my_table b ON b.id = a.id AND b.uid > a.uid 
GROUP BY a.uid, b.uid 

:などのSQL

first_uid second_uid cnt 
    a   b   2 
    a   c   2 
    b   c   3 

これは、SQL Serverのunpivotコマンドを使用して行うこともできます。 私はPig Latinで同様のソリューションを実装する方法を知りたいと思います。特に、Pig Latinの不等式で結合を行う方法があります。 PIG

+0

達成しようとしているものの例を追加できますか?質問をより明確にするのに役立ちます。 – Mureinik

+0

最終目標は、PIGを使用して共存行列を生成することです。私はSQLでそれを行う方法を提示しましたが、なぜこの戦略が結合制限のためにPIGで動作しないのかを指摘しました。 – nonojojo

答えて

0

を使用して共起行列を得るためにあなたの問題の重要な部分ががあるように思われている他、他にどのような方法

は内不平等と結合を行う方法がありますPig \

答えは「はい」ですが、常に良い方法ではありません。

これに近づく方法は、最初に条件なしで結合し、不等式の結果をフィルタリングすることです。

通常、ブタは一時的な結果が爆発するのを防ぐためにフィルタを少し上に押し上げることができますが、これは一般的にどの程度効率的であるかはわかりません。