Reputation: 85
I have 2 custom events A and B . A can have values either "X" or "Y" . B will have a unique value Z . Some rows of event A has both values "X" and "Y" but has a unique event B value "Z" and I want to filter this event A having values "X" and "Y" .
I want the result set to be having event A with only value X and event B with value Z . Basically I doesn't want to show the entry of event A having Y value when it already has an entry having "X" with the same unique value Z that it has with Y.
I basically did an inner join between values of X and Y based on unique value Z
customEvents
| extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B'])
| where (Column1 == "X" )
| project Column1 ,column2
| join kind= inner (
customEvents | extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B']) | where (Column1 == "Y"
)| project Column1 , column2
) on column2 | project Column1 , column2
By this I am able to get the common rows on unique value Z in column2 and X in column1 .
Now how to show the remaining rows of column1 having Y value alone in event A and add them to the result set that I got from the above inner join query ? I tried using a full outer with event A having Y value alone with the above result i got . But it doesn't gave me desired results. Need some help on this .
Upvotes: 3
Views: 7935
Reputation: 2679
I think there are several ways to achieve the desired outcome:
Use Union
operator that just "glues" two data sets together without joining on any field - (Query1) | union (Query2)
. This is suitable if you can have two data sets in two queries as an input to produce the union.
Use (Query1) | join kind=anti (Query2) on Field
to get everything from the left side that is not represented in the right side in Field
. This is suitable if you have a data set you want to "subtract" from the other richer data set to get the required result.
Upvotes: 2
Reputation: 25116
can't you do this even simpler without any joins/unions at all, something like
customEvents |
extend columnA = tostring(customDimensions.['A'])
extend columnB = tostring(customDimensions.['B'])
extend columnMerged = iff( columnA == 'X', ColumnA, ColumnB )
project columnMerged
Upvotes: 0