gpt4 book ai didi

sql - 每条记录的倒数第二个日期

转载 作者:行者123 更新时间:2023-12-01 13:19:26 29 4
gpt4 key购买 nike

我正在努力创建选择,它显示了我数据库中每条记录的倒数第二个日期。

例如:

id  date
1 01.01.2018
1 05.01.2018
1 06.02.2018
2 01.06.2018
2 03.06.2018
3 12.12.2017

在这条记录中,我需要编写select,它显示如下:

ID   max_date   penultimate
1 06.02.2018 05.01.2018
2 03.06.2018 01.06.2018
3 12.12.2017 NULL

知道怎么做吗?非常感谢

最佳答案

使用条件聚合和 ANSI 标准 row_number()dense_rank() 函数:

select id,
max(date) as max_date,
max(case when seqnum = 2 then date end) as penultimate_date
from (select t.*,
dense_rank() over (partition by id order by date desc) as seqnum
from t
) t
where seqnum in (1, 2)
group by id;

如果日期相同,则使用 row_number()

关于sql - 每条记录的倒数第二个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51171800/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com