如何 select 客户在 Terada SQL 从当前日期起的过去 30 天内至少进行了 2 笔交易?
How to select clients which made minimum 2 transactions during last 30 days from current date in Terada SQL?
我在 Teradata SQL 中有 table 如下交易:
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 - 交易日期
而且我只想select那些在从今天(13-09-2021)起的过去 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;
我在 Teradata SQL 中有 table 如下交易:
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 - 交易日期
而且我只想select那些在从今天(13-09-2021)起的过去 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;