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':相関式に非修飾列参照を含めることはできません。
相関式とは何ですか?修飾されていない列参照とは何ですか?ここでエラーを一般化できますか?.
これは、両方のクエリでb
が使用されているためです。メインのクエリとin
ステートメント内のクエリの両方です。これを修正するには、どのb
を参照しているかをHiveに明示的に伝える必要があります。そのため、t1.b
に変更すると解決します。