2016-04-12 9 views
0

組み込みの内部データセットを持つ中で、アナリティクス例外に直面しています。例外 - HiveQLで2つのデータセットを結合する

クエリ

Select key,days 
    FROM 
    (
     Select key   
     FROM sls where id =14004 
    ) AS first 
    JOIN 
    (
     Select seckey ,days 
     FROM 
     (
      Select seckey , MAX(opp_days) As days from sls_daily Where id=14004 Group By key 
     ) As f 
     JOIN 
     (
      Select key,est,cls,days from sls_daily Where dw_cid=14004 
     ) As s 
     ON f.days = s.days AND f.key= s.key 
    ) AS second 
    ON second.seckey = first.key 

例外

AnalysisException:15行の構文エラー:例外: は、第1の期待:により発生しIDENTIFIER構文)が発生しました^最初のASエラー

Wハットがエラーの原因です。

+0

のように試してみてください 'second'は、ANSI SQLの予約語である、' ' "第二" として区切られる必要があります。 – jarlh

+0

'first'と' second'はHiveqlの予約語です(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Keywords,Non-reservedKeywordsandReservedKeywords)。別のテーブルエイリアスを選択してください。 –

答えて

2

の単語はSQLで避けてください。

この

Select `key`,`days` 
    FROM 
    (
     Select `key`   
     FROM sls where id =14004 
    ) AS `first` 
    JOIN 
    (
     Select seckey ,`days` 
     FROM 
     (
      Select seckey , MAX(opp_days) As `days` from sls_daily Where id=14004 Group By key 
     ) As f 
     JOIN 
     (
      Select `key`,est,cls,`days` from sls_daily Where dw_cid=14004 
     ) As s 
     ON f.`days` = s.`days` AND f.`key`= s.`key` 
    ) AS `second` 
    ON `second`.seckey = `first`.`key` 
+0

クエリの予約語は何ですか?私はそれを理解することができません。あなたの答えは今はうまくいっています。 –

+1

変数に組み込まれています。ユーザー定義変数として使用することはできません。 –

関連する問題