我有下表
card id | txn id | date | legit
xys txq Mar.1 1
xys txs Mar.8 0
xys txt Mar.12 0
xyb txl Mar.13 0
xyb txp Mar.14 1
我希望能够比较第一张记录和该卡ID的任何将来记录之间的日期,该记录的合法性为0,并且如果第一条记录在10天内,请显示该记录。 (请注意,如果合法= 0,则还需要包括第一条记录)。
[如果有更好的方法来考虑这个问题,我将不知所措。我很确定dateddiff将在这里使用,但是我不确定如何在第一个记录和任何将来的记录之间进行比较。
示例输出将是:
card id | txn id | date | legit
xys txs Mar.8 0
xyb txl Mar.13 0
WHERE
legit = 0
...
如果我理解正确,则可以使用窗口功能:
select t.*
from (select t.*, min(date) over (partition by cardid) as min_date
from t
) t
where legit = 0 and date < min_date + interval '10 day';