ID | DATE | OTHER | OTHER ---------------------------------- ID45 | 8/22/2020 | | ID45 | 9/12/2020 | | ID45 | 12/13/2020 | | ID45 | 7/14/2020 | | ID56 | 3/15/2020 | | ID56 | 2/19/2020 | | ID56 | 9/24/2020 | | ID56 | 5/18/2020 | | ID72 | 7/20/2020 | |
I would like to see all the data (all columns) related to the last 3 dates of an ID The result would be in this case:
ID | DATE | OTHER | OTHER ---------------------------------- ID45 | 12/13/2020 | | ID45 | 9/12/2020 | | ID45 | 8/22/2020 | | ID56 | 9/24/2020 | | ID56 | 3/15/2020 | | ID56 | 2/19/2020 | |
Could you please help me?
Advertisement
Answer
You can use window functions:
select t.*
from (select t.*,
row_number() over (partition by id order by date desc) as seqnum
from t
) t
where seqnum <= 3;