Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
TiNiglo
Contributor
Contributor

Add a column according to another

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.

1 Solution

Accepted Solutions
Taoufiq_Zarra

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:

Taoufiq_Zarra_0-1631968911425.png

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

1 Reply
Taoufiq_Zarra

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:

Taoufiq_Zarra_0-1631968911425.png

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉