Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreShape the future of the Fabric Community! Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions. Take survey.
Hi all,
Wondering if anyone could help me work out how to approach the following challenge:
I have a table with millions of IDs in one columns, and dates of when they were sold in another.
In the event that an ID is repeated, it means the product has been resold and I need to calculate the average datediff between those two dates for the repeated IDs.
Would the best approach be to create another table by performing a Group By on the IDs? If so how would I then use the datediff to only calculate between the two dates relating to the repeated IDs?
Many thanks for any direction on this one!
Matt
Solved! Go to Solution.
So... we take the max(date sold) minus min(date sold) giving us the total # of days between sales, then divide by the number of sales (minus 1)... and that gives the average number of days between sales? I think?
Jan 1, 2017
Jan 9, 2017
... 8 days between sales -- Jan 9 - Jan 8 / (2 sales - 1) = 8
Jan 1, 2017
Jan 2, 2017
Jan 9, 2017
... still 8 days, but now with another sale, we get average of 4 days. The exact date off the "middle" sale doesn't matter, at least in my head!? Currently Jan2-Jan1=1, Jan9-Jan2=7, (7+1)/2=4 ?
Avg Days Between Sale := DIVIDE(MAX(MyTable[SaleDate]) - MIN(MyTable[SaleDate]), COUNTROWS(MyTable) - 1)
Maybe?! 🙂
Hi again,
Qucik update, it turns out that my technical indications were incorrect and the sales are not going to coming through this way.
However, intrigued by the suggestion I've had a quick look through but can't seem to get it to work:
ID | Date Sold | Time taken to sell | |||
1 | 01/01/2017 | 0 | |||
1 | 03/01/2017 | 2 | |||
3 | 05/01/2017 | 0 | Average Days to Sell | ||
3 | 10/01/2017 | 5 | 3,5 | ||
Jan10-Jan1 / 2 sales = 5? | |||||
Jan10-Jan1 / (2-1) sales = 10? |
Many thanks for your help anyway.
Matt
What if the same ID comes up ... 3 times? 47 times?
Hi @Anonymous
Good question! The time taken between each date (sale) should be included in the average calculation.
A product (the same ID) can be sold numerous times.
Let me know if you need any further information!
Thanks,
Matt
So... we take the max(date sold) minus min(date sold) giving us the total # of days between sales, then divide by the number of sales (minus 1)... and that gives the average number of days between sales? I think?
Jan 1, 2017
Jan 9, 2017
... 8 days between sales -- Jan 9 - Jan 8 / (2 sales - 1) = 8
Jan 1, 2017
Jan 2, 2017
Jan 9, 2017
... still 8 days, but now with another sale, we get average of 4 days. The exact date off the "middle" sale doesn't matter, at least in my head!? Currently Jan2-Jan1=1, Jan9-Jan2=7, (7+1)/2=4 ?
Avg Days Between Sale := DIVIDE(MAX(MyTable[SaleDate]) - MIN(MyTable[SaleDate]), COUNTROWS(MyTable) - 1)
Maybe?! 🙂
Hi again,
Qucik update, it turns out that my technical indications were incorrect and the sales are not going to coming through this way.
However, intrigued by the suggestion I've had a quick look through but can't seem to get it to work:
ID | Date Sold | Time taken to sell | |||
1 | 01/01/2017 | 0 | |||
1 | 03/01/2017 | 2 | |||
3 | 05/01/2017 | 0 | Average Days to Sell | ||
3 | 10/01/2017 | 5 | 3,5 | ||
Jan10-Jan1 / 2 sales = 5? | |||||
Jan10-Jan1 / (2-1) sales = 10? |
Many thanks for your help anyway.
Matt
Interesting approach, let me have a play around and see what the results are!
Thank you for the suggestion @Anonymous
Hi @Matt_Alexander,
If you still do not resolved your problem, you'd better post some sample table for further analysis. And welcome to share your workaround and mark the helpful reply as answer if you have resolved it.
Best Regards,
Angelia
User | Count |
---|---|
92 | |
89 | |
88 | |
83 | |
49 |
User | Count |
---|---|
156 | |
145 | |
105 | |
72 | |
55 |