[英]How to get the latest two dates from table for each unique id
唯一身份 | 日期 |
---|---|
一種 | 2023 年 1 月 1 日 |
一種 | 2023 年 3 月 1 日 |
一種 | 2023 年 5 月 1 日 |
乙 | 2023 年 1 月 1 日 |
乙 | 2/1/2023 |
乙 | 2023 年 3 月 1 日 |
乙 | 2023 年 4 月 1 日 |
C | 2023 年 1 月 1 日 |
我希望我的數據看起來像這樣
唯一身份 | 最新日期 | 2nd_latest_date |
---|---|---|
一種 | 2023 年 5 月 1 日 | 2023 年 3 月 1 日 |
乙 | 2023 年 4 月 1 日 | 2023 年 3 月 1 日 |
C | 2023 年 1 月 1 日 | Null |
您可以嘗試使用條件聚合和 row_number function,如下所示:
select unique_id,
max(case when rn=1 then date end) as latest_date,
max(case when rn=2 then date end) as _2nd_latest_date
from
(
select *,
row_number() over (partition by unique_id order by date desc) as rn
from table_name
) T
group by unique_id
order by unique_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.