SQL - 在几天内搜索重复

时间:2017-12-12 21:07:46

标签: sql vertica

我喜欢这个网站,这对我很有帮助,但这是我发布的第一个问题。我搜索过,找不到这个具体问题的答案。非常新的SQL。

假设我有一张表,用于分解发票中的每一行

TableName
OrderNumber, OrderDate, Product, CustomerID

我想要知道的是,在这些SAME产品订单相隔90天之内,客户ID多次订购了SAME产品。

我成功地进行了查询,发现客户多次订购同一产品:

select customerid, product, count(distinct ordernumber) as "count of orders" 
from TableName
where orderdate > '2017-01-01'
group by customerid, product
having count(ordernumber) > 1 

我似乎无法通过其他方式思考。

1 个答案:

答案 0 :(得分:-1)

select distinct a.customerid, a.product
from TableName a
join TableName b
  on a.orderdate > '2017-01-01'
 and b.orderdate >= a.orderdate
 and datediff(dd, a.orderdate, b.orderdate) <= 90 
 and a.customerid   = b.customerid
 and a.product      = b.product
 and a.ordernumber <> b.ordernumber