Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je rencontre un problème que je sais simple pour vous. Cela figure dans mon script de chargement de données. Mon application est connecté à ma base de données, les 2 jeux de données ci-dessous sont obtenu avec un simple chargement de vues SQL.
J'ai un jeux de données contenant l'ensemble des enregistrement versions :
[alldata]:
id | name | version |
1 | first | A |
2 | second | B |
3 | first | B |
J'ai un second jeux de données avec seulement l'id d'enregistrement et la dernière version
[lastrelease]:
id | name | version |
3 | first | B |
2 | second | B |
Ce que je veux réaliser c'est ajouter une colonne à [alldata] afin d'explicitement dire si c'est la dernière version:
[alldata]:
id | name | version | ismax |
1 | first | A | FALSE |
2 | second | B | TRUE |
3 | first | B | TRUE |
Je l'ai fait d'une première façon, avec une boucle, ce qui est très long avec mon volume de données.
Actuellement :
Pour chaque alldata, si on le trouve dans lastrelease alors True sinon False
Je sais qu'il est possible à partir d'une jointure conditionnelle de réaliser cela mais je n'y arrive pas.
Est-ce que quelqu'un aurait une idée pour m'aider ?
Merci beaucoup d'avance.
BOnjour @TiNiglo
plusieurs possibilités, par exemple :
alldata:
load * inline [
id,name,version
1,first,A
2,second,B
3,first,B
];
left join
load *,'TRUE' as ismax inline [
id,name,version
3,first,B
2,second,B
];
Final:
noconcatenate
load id,name,if(len(trim(ismax))=0,'FALSE',ismax) as ismax resident alldata;
drop table alldata;
output:
BOnjour @TiNiglo
plusieurs possibilités, par exemple :
alldata:
load * inline [
id,name,version
1,first,A
2,second,B
3,first,B
];
left join
load *,'TRUE' as ismax inline [
id,name,version
3,first,B
2,second,B
];
Final:
noconcatenate
load id,name,if(len(trim(ismax))=0,'FALSE',ismax) as ismax resident alldata;
drop table alldata;
output: