Forum Discussion
Replicate this SQL query in DAX
- 3 years ago
Hi cris1196
The following shall return unique count of customers.
Common Customers = VAR T1 = CALCULATETABLE ( VALUES ( 'Table'[Cutomer] ), 'Table'[first_order] = "True", 'Table'[YearMonth] = 202201 ) VAR T2 = CALCULATETABLE ( VALUES ( 'Table'[Cutomer] ), 'Table'[Day] = 1, 'Table'[YearMonth] = 202201 ) RETURN COUNTROWS ( INTERSECT ( T2, T1 ) )New Customers = VAR T1 = CALCULATETABLE ( VALUES ( 'Table'[Cutomer] ), 'Table'[first_order] = "True", 'Table'[YearMonth] = 202201 ) VAR T2 = CALCULATETABLE ( VALUES ( 'Table'[Cutomer] ), 'Table'[Day] = 1, 'Table'[YearMonth] = 202201 ) RETURN COUNTROWS ( EXCEPT ( T2, T1 ) )
So if I create an array whose rows are [YearMonth] and columns are [Days] (or I can generate another table with generatedseries(0,12,1) for the months/periods):
that PBI automatically calculates these values, without the need to create several variables.
Just in case, if I didn't explain myself well: if I wanted "number of users with first order = true per day", I could do:
I hope I have explained myself well, if not, I apologize and honestly I do not want to take up any more of your time: I already created all the variables I needed, this question is just an irrelevant extra curiosity.
Again, many thanks for your help 🙂
cris1196
I was hopping that you explain what are trying to achieve not how are you trying to achieve it. However there is a chance that I correctly guessed your requirement. It could be much simpler than you might think. Please try
Common Customers =
VAR CurrentMonth =
SELECTEDVALUE ( 'Table'[YearMonth] )
VAR T1 =
CALCULATETABLE (
VALUES ( 'Table'[Cutomer] ),
'Table'[first_order] = "True",
'Table'[YearMonth] = CurrentMonth - 1,
ALL ( 'Table'[Day] )
)
VAR T2 =
VALUES ( 'Table'[Cutomer] )
RETURN
COUNTROWS ( INTERSECT ( T2, T1 ) )- cris11963 years agoHelper I
I tried to put examples so I tried to explain it better. Thank you very much for your help