Ich verwende derzeit Hive und ich habe eine Tabelle mit den Feldern user_id und value. Ich möchte die Werte in absteigender Reihenfolge innerhalb jeder user_id bestellen und dann nur die obersten 100 Datensätze für jede user_id ausgeben. Dies ist der Code, den ich zu verwenden ist versucht:Hive - top n Datensätze innerhalb einer Gruppe
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;
Jedoch, wenn ich diese Abfrage ausführen, bekomme ich folgende Fehlermeldung:
Error while compiling statement: FAILED: SemanticException [Error 10247]: Missing over clause for function : rank [ERROR_STATUS]
FYI - My UserIds sind alphanumerisch.
Kann jemand helfen?
Vielen Dank im Voraus.
Kommentar schreiben
Vielen Dank - das Problem ist jetzt sortiert. – Maeve90