SQL - 查找最大日期

时间:2017-05-22 16:45:41

标签: sql postgresql greatest-n-per-group

我有一些包含2个日期字段的数据:record datepurchase date

记录日期是每个月的第一天:

2016-01-01
2016-02-01
2016-03-01 

购买日期是购买产品的日期:

2015-02-14
2016-01-06 

我需要做的是记录每个记录日期的最近购买日期。所以不是最近的购买日期,这是MAX(purchasedate)给我的。但是最大购买日期是在记录日期之前。

因此,我上面列出的示例的结果数据集将是:

Record Date          Most Recent Purchase Date
2016-01-01           2015-02-14
2016-02-01           2016-01-06
2016-03-01           2016-01-06

2 个答案:

答案 0 :(得分:1)

您可以使用窗口功能max按照增加record_date的顺序查找最新购买:

select record_date,
    max(purchase_date) over (
        order by record_date
        ) as latest_purchase_date
from your_table;

答案 1 :(得分:0)

您可以试试这个:

select recordDate, max(purchaseDate) from myDB 
 group by recordDate

我假设SQL Server。