2つの表の内の1つの列の一意の値に対する2つの表のINNER JOINに起因する列間の一致をカウントしようとしています。例では、物事をより明確にすることがあります。ハイブ:列の一意の値に対するINNER JOINの一致数が一致しました
私は、次の2つのテーブルを持っていた場合:[1,2,3]
およびそれらに関連info_A
:['a','b','c','d']
Table A
-------
id_A: info_A
1 'a'
2 'b'
3 'c'
3 'd'
Table B
-------
id_B: info_B
1 'a'
3 'c'
5 'b'
私はユニークid_A
を見つけたいです。
私は、次のような表を作成したい:
match_cnt
が与えられた
id_A
ため
info_A
と
info_B
間の一致の数です
Table join of A+B
-----------------
id_A: info_A id_B info_B match_cnt
1 'a' 1 'a' 1
3 'c','d' 3 'c' 0.5
。参考までに、私が実際に使っているテーブルには何十億もの行があります。
コードチャンクは、私が試した内容を示し、プラスの変化(以下に示されていない):
SELECT z.id_A, z.info_A, z.id_B, z.info_B
FROM(
SELECT u.id_A AS id_A, u.info_A AS info_A, y.id_B AS true_id_B, y.info_B AS true_info_B
FROM db.table_A u
WHERE EXISTS
(SELECT id_B, info_B
FROM table_B l
where l.id_B= u.id_A)
INNER JOIN table_B y
ON u.id_A = y.id_B
) z
データサンプルの結果が更新されました –