1

TPC-DS ツールキットから直接取得した、私の Hive クエリを次に示します。

WITH customer_total_return 
     AS (SELECT sr_customer_sk AS ctr_customer_sk, 
                sr_store_sk    AS ctr_store_sk, 
                Sum(sr_fee)    AS ctr_total_return 
         FROM   store_returns, 
                date_dim 
         WHERE  sr_returned_date_sk = d_date_sk 
                AND d_year = 2000 
         GROUP  BY sr_customer_sk, 
                   sr_store_sk) 
SELECT TOP 100 c_customer_id 
FROM   customer_total_return ctr1, 
       store, 
       customer 
WHERE  ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2 
                                FROM   customer_total_return ctr2 
                                WHERE  ctr1.ctr_store_sk = ctr2.ctr_store_sk) 
       AND s_store_sk = ctr1.ctr_store_sk 
       AND s_state = 'TN' 
       AND ctr1.ctr_customer_sk = c_customer_sk 
ORDER  BY c_customer_id; 

ただし、実行しようとすると次のエラーが発生します。

失敗: ParseException 行 11:11 は、選択対象の 'TOP' '100' 'c_customer_id' 付近の入力を認識できません

私の理解ではTOP 100、HiveQL では構文的に有効ではありません。これを正しく書き直すにはどうすればよいでしょうか。

4

2 に答える 2