Bonjour à tous,
cela fait très peu de temps que je travaille sur Hive et je rencontre un problème.
Je n'ai jamais fais de fonction sur Hive et pourtant j'en aurais bien besoin.
Voici le schéma de ma table table_test :
J'aimerais faire en sorte que si mon ordre=1 alors position=first
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 useridglobal datevisite targetvalue hostname TimeID ordre position relevant SiteID
si mon ordre>1 mais différent du max de l'ordre pour mon useridglobal alors position=after
si mon ordre=max(ordre) pour mon useridglobal alors position=last
En effet parfois je possède un même useridglobal avec un ordre allant de 1 à n. Le but est donc que pour chaque useridglobal j'ai ma position.
Voici ce que j'ai commencé :
Ca fonctionne et me donne bien ce que je mets dans la fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select useridglobal, ordre, if(locate(1,ordre)>0 ,'first' ,'autres') as position from table_test
Néanmoins, je vois pas comment insérer le reste de mes conditions ...
Merci d'avance
Partager