2016-03-28 23 views
2

Şu anda Hive kullanıyorum ve user_id ve value alanlarına sahip bir tablom var. Değerleri her bir user_id içinde azalan düzende sıralamak ve sonra her bir user_id için en iyi 100 kaydı vermek istiyorum. Benim userids alfa-sayısal vardır - Hive - bir grup içindeki en iyi n kayıtları

Error while compiling statement: FAILED: SemanticException [Error 10247]: Missing over clause for function : rank [ERROR_STATUS] 

Bilginize: Bu sorgu çalıştırdığınızda

DROP TABLE IF EXISTS mytable2 
CREATE TABLE mytable2 AS 
SELECT * FROM 
(SELECT *, rank (user_id) as rank 
FROM 
(SELECT * from mytable 
DISTRIBUTE BY user_id 
SORT BY user_id, value DESC)a)b 
WHERE rank<101 
ORDER BY rank; 

Ancak, aşağıdaki hatayı alıyorum: Bu benim kullandığım çalışılıyor koddur.

Herkes yardımcı olabilir mi?

Şimdiden teşekkürler.

Yorum ekle

cevap

0

hata mesajı söylediği gibi, hata sıralaması işlevini kullanarak sahip, deneyin şöyle rank sonra over eklemek için:

.... 
    (SELECT *, rank (user_id) over (order by user_id) as rank 
.... 

fazla bilgi için rütbe işlevini nasıl kullanılacağı Bu documentation

+0

için başvuruda bulunabilirsiniz Teşekkürler - sorun şimdi sıralanmıştır. – Maeve90