cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
AlexoTomo
Regular Visitor

LAG / LEAD SQL Alternative in power bi. Partitioning.

Hi All, 

 

I've got a list of CustomerIDs and datetimes and a 'status' of either 1,2,3,4/5. e.g. I would like to get a date range by getting and EndDateTime.

 

This is what i have: 

CustomerID, DateTime, Status

1, 2020-02-01 03:00:00.000, 1 
1, 2020-02-01 04:00:00.000, 2

1, 2020-02-01 06:00:00.000, 3

2, 2020-02-03 07:00:00.000, 2

2, 2020-02-03 09:30:00.000, 3

2, 2020-02-03 10:30:00.000, 2

 

 

This is what i want: 


CustomerID, DateTime, EndDateTime, Status

1, 2020-02-01 03:00:00.000, 1,  2020-02-01 04:00:00.000,
1, 2020-02-01 04:00:00.000, 2,  2020-02-01 06:00:00.000

1, 2020-02-01 06:00:00.000, 3,  NULL

2, 2020-02-03 07:00:00.000, 2, 2020-02-03 09:30:00.000

2, 2020-02-03 09:30:00.000, 3, 2020-02-03 10:30:00.000

2, 2020-02-03 10:30:00.000, 2, NULL



In Sql I would usually use:
LEAD([DateTime]) OVER(PARTITION BY [CustomerID] ORDER BY [DateTime]) 
I am unable to use sql here though and need to achieve in Power BI Desktop

I want to do this in Power BI, preffarably not in power query editor but accept it may be easier in Power Query or not possible in Power BI Desktop. 

Thanks


1 ACCEPTED SOLUTION
Eyelyn9
Community Support
Community Support

Hi @AlexoTomo ,

 

Please try:

EndDateTime = MINX(FILTER('Table',[CustomerID]=EARLIER('Table'[CustomerID]) &&  [DateTime]>EARLIER('Table'[DateTime])),[DateTime])

Eyelyn9_0-1637898485908.png

If it's not you wanted, please share more detail information to help us clarify your scenario.

 

 

Best Regards,
Eyelyn Qin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
Eyelyn9
Community Support
Community Support

Hi @AlexoTomo ,

 

Please try:

EndDateTime = MINX(FILTER('Table',[CustomerID]=EARLIER('Table'[CustomerID]) &&  [DateTime]>EARLIER('Table'[DateTime])),[DateTime])

Eyelyn9_0-1637898485908.png

If it's not you wanted, please share more detail information to help us clarify your scenario.

 

 

Best Regards,
Eyelyn Qin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

manikumar34
Solution Sage
Solution Sage

@AlexoTomo , 

 

you can do this with PREVIOUS and EARLIER functions in power BI. 

Tyr the below solutions. 
https://community.powerbi.com/t5/Desktop/Compute-Lead-and-Lag/m-p/425809

 

https://datacaffee.com/sql-equivalent-power-bi-dax-functions-part-2/





If this helps, Appreciate your KUDOS!
Did I answer your question? Mark my post as a solution!


Proud to be a Super User!




Helpful resources

Announcements
Power BI December 2021 Update_carousel 768x460.jpg

Check it Out!

Click here to read more about the December 2021 Updates!

User Group Leader Meeting January 768x460.png

Calling all User Group Leaders!

Don't miss the User Group Leader meetings on January, 24th & 25th, 2022.

Jan 2022 Dev Camp 768x460 copy.png

Power BI Dev Camp- January 27th, 2022

Mark your calendars and join us for our next Power BI Dev Camp!

Top Solution Authors
Top Kudoed Authors