SQL Snowflake-在一张表中比较2个日期

问题描述 投票:0回答:1

我有下表

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 ...

sql snowflake-cloud-data-platform datediff
1个回答
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';
© www.soinside.com 2019 - 2024. All rights reserved.