March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hello,
Could use some help figuring out the DAX syntax for the following scenario.
I have a single table with a self referential hierarchy that looks like this:
ID | Type | Request ID | Timestamp | Time to first reply (minutes) |
554 | Question | ABC123 | 8/1/2020 13:49 | 3 |
231 | Reply | ABC123 | 8/1/2020 13:52 | |
895 | Reply | ABC123 | 8/1/2020 13:53 | |
522 | Question | DEF234 | 8/2/2020 8:00 | 5 |
120 | Reply | DEF234 | 8/2/2020 8:05 | |
978 | Question | GHI345 | 8/2/2020 8:07 | 1 |
840 | Reply | GHI345 | 8/2/2020 8:11 | |
92 | Reply | GHI345 | 8/2/2020 8:08 | |
520 | Reply | GHI345 | 8/2/2020 8:09 |
I am trying to calculate the value in the "Time to First Reply" column, basically for each question, subtract the earliest reply timestamp from the question timestamp.
In pseudo code this would look something like this:
(RequestID(timestamp), Filter(type = "Question)) - (min(request_id(timestamp)), Filter(type = "Reply"))
I just can't get the FILTER, ALLEXCEPT etc.. to give me what i need.
Thanks for any help you can provide.
Solved! Go to Solution.
Hi @Anonymous ,
Create a Column
Column =
var a = CALCULATE(MIN('Table'[Timestamp]), FILTER('Table','Table'[Request ID] = EARLIER('Table'[Request ID]) && 'Table'[Type] = "Reply"))
RETURN
IF ('Table'[Type] = "Question" , DATEDIFF('Table'[Timestamp],a, MINUTE), BLANK())
Incase you need a measure
First Reply =
var a = CALCULATE(MIN('Table'[Timestamp]), FILTER(ALL('Table'),'Table'[Request ID] = MAX('Table'[Request ID]) && 'Table'[Type] = "Reply"))
RETURN
IF (MAX('Table'[Type]) = "Question" , DATEDIFF(MAX('Table'[Timestamp]),a, MINUTE), BLANK())
Regards,
Harsh Nathani
Did I answer your question? Mark my post as a solution! Appreciate with a Kudos!! (Click the Thumbs Up Button)
[TTFR (mins)] = // calc column
var __type = T[Type]
return
if( __type = "question",
var __request = T[Request ID]
var __requestTime = T[Timestamp]
var __replyTime =
MINX(
filter(
T,
T[Request ID] = __reqest
&&
T[Type] = "reply"
),
T[Timestamp]
)
return
DATEDIFF(
__requestTime,
__replyTime,
MINUTE
)
)
[TTFR (mins)] = // calc column
var __type = T[Type]
return
if( __type = "question",
var __request = T[Request ID]
var __requestTime = T[Timestamp]
var __replyTime =
MINX(
filter(
T,
T[Request ID] = __reqest
&&
T[Type] = "reply"
),
T[Timestamp]
)
return
DATEDIFF(
__requestTime,
__replyTime,
MINUTE
)
)
Thanks daxer. Works perfectly.
Hi @Anonymous ,
Create a Column
Column =
var a = CALCULATE(MIN('Table'[Timestamp]), FILTER('Table','Table'[Request ID] = EARLIER('Table'[Request ID]) && 'Table'[Type] = "Reply"))
RETURN
IF ('Table'[Type] = "Question" , DATEDIFF('Table'[Timestamp],a, MINUTE), BLANK())
Incase you need a measure
First Reply =
var a = CALCULATE(MIN('Table'[Timestamp]), FILTER(ALL('Table'),'Table'[Request ID] = MAX('Table'[Request ID]) && 'Table'[Type] = "Reply"))
RETURN
IF (MAX('Table'[Type]) = "Question" , DATEDIFF(MAX('Table'[Timestamp]),a, MINUTE), BLANK())
Regards,
Harsh Nathani
Did I answer your question? Mark my post as a solution! Appreciate with a Kudos!! (Click the Thumbs Up Button)
Thank you, Harsh. It works well.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
25 | |
16 | |
15 | |
7 | |
7 |
User | Count |
---|---|
37 | |
31 | |
16 | |
16 | |
12 |