【发布时间】:2020-08-30 08:25:35
【问题描述】:
我有一个名为 cust_trans 的客户交易表,其中客户进行的每笔交易都存储为一行。我有另一个名为 visit_date 的列,其中包含交易日期。我想过滤过去 2 年每年至少进行 3 次交易的客户。
数据如下所示
Id visit_date
---- ------
1 01/01/2019
1 01/02/2019
1 01/01/2019
1 02/01/2020
1 02/01/2020
1 03/01/2020
1 03/01/2020
2 01/02/2019
3 02/04/2019
我想知道过去两年每年至少光顾 3 次的客户
即。我想要下面的输出。
id
---
1
在客户表中,只有一个人在 2 年内访问了至少 3 次。
我尝试了以下查询,但它只检查总访问量是否大于或等于 3
select id
from
cust_scan
GROUP by
id
having count(visit_date) >= 3
and year(date(max(visit_date)))-year(date(min(visit_date))) >=2
如果有任何帮助、指导或建议,我将不胜感激
【问题讨论】:
-
过去 2 年是什么意思?日历年?
标签: sql date select group-by presto