Forum Discussion

vs531's avatar
vs531
New Member
3 years ago
Solved

Apply filter on CURRENTGROUP

Hi 

I am trying to calculate the difference between the last and previous observations for each ID. In the dataset, I have multiple observations for each ID over time. As a first step, I want to create a new table with the last and previous dates. I m using GROUPBY, but I cannot apply any filter to CURRENTGROUP. What would be a better approach to the problem?

 

Thanks 

 

 

NewTable =

GROUPBY(
    table,table[ID],
    "LastDate",MAXX(CURRENTGROUP(),table[DATE]),
    "PreviousDate", MAXX(FILTER(CURRENTGROUP(), table[DATE] < MAXX(CURRENTGROUP(),table[DATE]),table[DATE] )
    ))

 

 

  • vs531 , In case you need a new column

     

    Diff =

    var _max = maxx(filter(Table, [ID] = earlier([ID]) && [Date] < earlier([Date]) ) , [Date])
    return
    [Score]- Maxx(filter(Table, [ID] = earlier([ID]) && [Date] =_max ) , [Score])

     

2 Replies

  • vs531 , In case you need a new column

     

    Diff =

    var _max = maxx(filter(Table, [ID] = earlier([ID]) && [Date] < earlier([Date]) ) , [Date])
    return
    [Score]- Maxx(filter(Table, [ID] = earlier([ID]) && [Date] =_max ) , [Score])