I have a table asg is like below -
ASG_NUMBER START_dATE END_DATE JOB_CODE GRADE_CODE POS_CDOE
10 01-JAN-2021 08-JUN-2021 S29 Engineer Manager
10 09-JUL-2021 31-DEC-2021 S29 Sr. Engineer Manager
10 01-JAN-2022 31-DEC-4712 S56 principal Sr.Manager
11 16-FEB-2021 22-NOV-2021 A1 Marketing Analyst
11 23-NOV-2021 31-DEC-4712 A2 Marketing Analyst
I want to identify employees who have had a change in Grade and Job and then show the current and previous job and position data. This can be like below
ASG_NUMBER CUR_POS_CODE CUR_JOB_CODE CUR_GRADE_CODE PREV_JOB_CODE PREV_GRADE_CODE PREV_POS_CODE Curr_date Prev_date Time in previous pos(Y m)
10 Sr.Manager S56 PRINCIPAL S29 Sr.engineer Manager 1-jan-2022 09-JUL-2021 2 y 0 m
11 Analyst A2 Marketing A1 23-Nov-2022 16-fen-2021 9m
How can i use lag function to get these values for current and previous job , grade and position ?