sql - 如何在 Terada SQL 中选择从当前日期起最近 30 天内至少进行 2 次交易的客户?
问题描述
我在 Teradata SQL 中有关于事务的表,如下所示:
ID | NAME | DATE
------------
123 | Adam | 10-09-2021
123 | Adam | 11-09-2021
333 | Jane | 15-06-2021
456 | Tom | 11-02-2016
123 | Adam | 08-09-2021
333 | Jane | 22-01-2021
123 | Adam | 23-05-2017
- ID - 客户的 ID
- NAME - 客户名称
- DATE - 交易日期
我想只选择从今天(2021 年 9 月 13 日)起的最近 30 天内至少进行 2 笔交易的客户。
因此,我需要类似下面的内容,因为只有客户 Adam 在当前日期的最后 40 天内进行了最少 2 笔交易。
ID | NAME
------------
123 | Adam
如何在 Teradata SQL 中做到这一点?
解决方案
嗯。. . 如果您只想要客户端,那么这是过滤和聚合:
select id, name
from transactions
where date >= current_date - 30
group by id, name
having count(*) >= 2;