web-dev-qa-db-ja.com

サポートされていないサブクエリ式:相関式に非修飾列参照を含めることはできません

Hiveでは、次のクエリは失敗します。

  Select a,b,c from t1 where a in (0,100) AND b in (select b from t2
  where d>2 GROUP BY 1 ) LIMIT 1;

スキーマ:

t1(a,b,c)
t2(b,d,e)

エラーログ :

サポートされていないサブクエリ式 'b':相関式に非修飾列参照を含めることはできません。

相関式とは何ですか?修飾されていない列参照とは何ですか?ここでエラーを一般化できますか?.

7
user4915609

同じ問題を抱えている誰かを見つけることができます ここ および対応する JIRAチケット

これらの回答に基づいて、私はあなたに試すことをお勧めします:

Select a,b,c from t1 where a in (0,100) AND t1.b in (select b from t2
  where d>2 GROUP BY 1 ) LIMIT 1;
18
Pholochtairze

これは、両方のクエリでbが使用されているためです。メインのクエリとinステートメント内のクエリの両方です。これを修正するには、どのbを参照しているかをHiveに明示的に伝える必要があります。そのため、t1.bに変更すると解決します。

5
llulai