J'utilise actuellement Hive et j'ai une table avec les champs user_id et value. Je veux classer les valeurs par ordre décroissant dans chaque id_utilisateur, puis n'émettre que les 100 premiers enregistrements pour chaque id_utilisateur. Voici le code que je tente d'utiliser:Hive - top n enregistrements dans un groupe
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;
Cependant quand je lance cette requête, je reçois l'erreur suivante:
Error while compiling statement: FAILED: SemanticException [Error 10247]: Missing over clause for function : rank [ERROR_STATUS]
FYI - Mes UserIds sont alpha-numérique.
Quelqu'un peut-il aider?
Merci d'avance.
Ajouter un commentaire
Merci - le problème est maintenant trié. – Maeve90