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.

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
Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Power BI Release May 2022 768x460.png

Check it out!

Click here to read more about the May 2022 updates!