Comment puis-je générer des numéros de ligne pour une table existante lors de l'exécution d'une requête de sélection?
Par exemple:
select row_number(), * from emp;
J'utilise Hive 0.13. Je ne peux pas accéder aux fichiers jars ou udfs externes dans mon environnement. Les fichiers sous-jacents sont au format parquet.
Merci d'avance!
ROW_NUMBER()
est une fonction de fenêtrage donc elle doit être utilisée en conjonction avec une clause OVER
. Ne spécifiez simplement aucun PARTITION
.
SELECT *, ROW_NUMBER() OVER () AS row_num
FROM emp
--- other stuff
row_number () peut être utilisé pour trouver par exemple, visite récente d'un utilisateur sur votre site.
SELECT user_id,user_name,timestamp
FROM (
SELECT user_id,user_name,timestamp,row_number() over (partition by userid order by timestamp desc) as visit_number
from user) user_table
WHERE visit_number = 1