我目前的数据是2016年的客户数据。但我想知道客户是否在2016年之前有记录。
select ID,
name,
date_enter,
Date_leave,
item_bought,
lastitmebought =Lag(ID, 1) OVER (PARTITION BY Name ORDER BY Name , Date_leave)
from Customer
where date between '01/01/2016' and '12/31/2016'
我知道我的查询仅仅是关注2016年的客户。 以下是我想要做的一个例子:如果客户A在2016年1月1日进入并且之前已经在商店11月25日,我希望我的滞后能够给出我2015年记录的ID,不仅仅是2016年的记录。
谢谢
答案 0 :(得分:0)
如果您想知道客户在2016年之前是否有记录,我建议汇总:
select c.id
from Customer c
group by c.id
having min(date_enter) < '2016-01-01';
如果您想要2016年和2015年的客户ID:
select c.id
from Customer c
group by c.id
having max(date_enter) >= '2016-01-01' and
sum(case when date_enter >= '2015-01-01' and date_enter < '2016-01-01' then 1 else 0 end) > 0;