2017-02-07 19 views
1

私はHortonworks Developer認定資格取得のために勉強しています。練習試験の1つの演習では、いくつかのネストされたクエリからテーブルを作成するよう求められます。Hiveのネストされたクエリステートメントでエイリアスが必要なのはなぜですか?

次の文がエラーを与える理由は、私にははっきりしていない:

SELECT * FROM (nested queries); 

予想通り、この文は動作しますが:

SELECT a.* FROM (nested queries) AS a; 
+1

私の理解では、ハイブインタプリタは、逆の言い方で、すなわち最後の文を最初にデコードするので、実行のためにクエリを分析するためには名前が必要です。 explain queryコマンドを実行すると、より多くの洞察のためにどのようにクエリ・プランが実行されるかを知ることができます。 –

+0

FROM句の各テーブルには名前が必要であるため[The SubQuery](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries)に名前を付ける必要があります。 –

答えて

1

テーブル句から内部の名前を持っているとするのでなければなりませんその理由のエイリアスをスローするエラーなしでfrom句内のネストされたクエリ。

詳しくはHive Wikiをお読みください。

関連する問題