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
May 23 2022 epsiode 5 without aka link.jpg

The Power BI Community Show

Welcome to the Power BI Community Show! Jeroen ter Heerdt talks about the importance of Data Modeling.

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!

Power BI Dev Camp Session 22 with aka link 768x460.jpg

Check it out!

Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!

Power BI Release May 2022 768x460.png

Check it out!

Click here to read more about the May 2022 updates!