Forum Discussion
Remove Duplicates NATURALINNERJOIN
Hi,
When I join 2 tables, I am receiving duplicate values, because in same cases for the same entry I have 2 values. I would like to know, at the end of joining, if I can make distinct, and get only one.
Join =
VAR A =
SELECTCOLUMNS (
TableA,
"An", RELATED(Advertisers[An]),
"Key", FORMAT(TableA[Key],"string")
)
VAR B =
SELECTCOLUMNS (
TableB,
"idAn", TableB[IdAnunciante],
"NameAn", TableB[NomeAnunciante],
"Key", FORMAT(TableB[KeyMkt],"string")
)
VAR Result =
NATURALINNERJOIN( B, A )
VAR Dist = SUMMARIZE(Result, [IdAn] , [NameAn], [An] )
RETURN
Dist
Result (In same cases I get 2 entrys):
| IdAn | NameAn | An |
| 1153 | XPTO | TesteXPTO |
| 1153 | XPTO | XPTO |
What I want (I just want one entry, regardless of which entry is):
| IdAn | NameAn | An |
| 1153 | XPTO | XPTO |
or
| IdAn | NameAn | An |
| 1153 | XPTO | TesteXPTO |
I need to do this with DAX, because tableA as more than 100M entrys
Hi Anonymous ,
Has your problem been solved?
If not, do you mind sharing your .pbix file? Or show me the sample data of TableA, TableB and Advertisers.
Or you can use table visual to get the table.
Or create another table.
'Sheet2' table is your 'join' table.
Best regards,
Lionel ChenIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
6 Replies
- v-lionel-msftCommunity Support
Hi Anonymous ,
Has your problem been solved?
If not, do you mind sharing your .pbix file? Or show me the sample data of TableA, TableB and Advertisers.
Or you can use table visual to get the table.
Or create another table.
'Sheet2' table is your 'join' table.
Best regards,
Lionel ChenIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- AnonymousNot applicable
Creating another table solved the problem. The problem was that I need a Many-to-One connection to another table.
- amitchandakSuper User
Anonymous , See if this can help
At the end of your code
VAR Dist = SUMMARIZE(Result, [IdAn] , [NameAn],"An" , max([An]) ) // or use min RETURN Dist- AnonymousNot applicableHi amitchandak , I tried to put a Max or even a filter with count, but I always have the error "Cannot find name [An])". I think it had to be something like Max(TableName[An]), but it also doesn't works, because doesn't accept Max(Result[An])
- v-lionel-msftCommunity Support
Hi Anonymous ,
Try to use MAXX() function.Join = VAR A = SELECTCOLUMNS ( TableA, "An", RELATED(Advertisers[An]), "Key", FORMAT(TableA[Key],"string") ) VAR B = SELECTCOLUMNS ( TableB, "idAn", TableB[IdAnunciante], "NameAn", TableB[NomeAnunciante], "Key", FORMAT(TableB[KeyMkt],"string") ) VAR Result = NATURALINNERJOIN( B, A ) VAR Dist = SUMMARIZE(Result, [IdAn] , [NameAn], "An", MAXX(Result, [An]) ) RETURN DistBest regards,
Lionel ChenIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- AnonymousNot applicable
Hi v-lionel-msft ,
I think we are close. My original table without MAX is:
IdAn NameAn An 1153 XPTO TestXPTO 1153 XPTO XPTO 1164 Yee Yee 2154 Whiskey Whiskey Now the result is the following:
IdAn NameAn An 1153 XPTO Whiskey 1164 Yee Whiskey 2154 Whiskey Whiskey
But I need the Max / Min "An" of each ID, like this:
( I tried Maxx(values(Result[IdAn)) but cannot find the table )IdAn NameAn An 1153 XPTO XPTO 1164 Yee Yee 2154 Whiskey Whiskey