2
SELECT
    prc.user_key,
    percentile(P.price, 0.5) OVER (PARTITION BY P.user_key) as median_price       
    FROM
    (
     SELECT 
     vfc.user_key,
     vfc.order_id,
     MIN(vddo.cc)  price
     FROM
     td_b.mv_a vfc
     JOIN
     td_b.dim_deal_option vddo
     ON vfc.d_key = vddo.d_key
     WHERE
     vfc.action = 'sale'
     GROUP BY  vfc.user_key, vfc.order_id
    ) prc limit 100;

ハイブで「FAILED: Parse Error: line 4:13 mismatched input '(' expected FROM near 'OVER' in from節」というエラーが表示されます。パーセンタイルを削除してクエリをパーティション分割すると、問題なく動作しますか? count() を試しましたパーセンタイルではなく、同じエラーです。

4

2 に答える 2

1

パーセンタイル/パーティション ラインはサブクエリに「P」(P.price および P.user_key) のエイリアスを付けますが、サブクエリは「prc」です。悪いエイリアスがそのエラーをスローすることがあります

于 2013-10-09T01:48:54.350 に答える