我喜欢这个网站,这对我很有帮助,但这是我发布的第一个问题。我搜索过,找不到这个具体问题的答案。非常新的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
我似乎无法通过其他方式思考。
答案 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