首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取在一周年纪念周和soo on - SQL完成事务的客户数量。

获取在一周年纪念周和soo on - SQL完成事务的客户数量。
EN

Stack Overflow用户
提问于 2022-03-22 05:52:07
回答 1查看 36关注 0票数 1

我有一个交易表,其中包含所有客户的购买历史记录。我想知道在一周(7天)内购买的顾客数量(使用Min(Bill_Date))。

代码语言:javascript
复制
Customer_Id   Bill_Date
   1          2020-01-23
   1          2021-01-28
   2          2020-09-01
   2          2021-09-07
   3          2020-03-01

因此,预期产出:

购买周年纪念日一周内购买的顾客编号为:3

我在这一步之后被困住了

代码语言:javascript
复制
with CTE As
(Select customer_id,Bill_Date from
(Select Customer_id,Bill_Date,Dense_Rank() over(partition by Customer_id order by Bill_Date)r1 from CDM_Bill_Details)t1
where t1.r1=1
group by customer_id)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-22 06:05:40

我会在这里使用存在逻辑:

代码语言:javascript
复制
WITH cte AS (
    SELECT *, MIN(Bill_Date) OVER (PARTITION BY Customer_Id) Min_Bill_Date
    FROM CDM_Bill_Details
)

SELECT COUNT(DISTINCT Customer_Id) AS cnt
FROM
(
    SELECT Customer_Id
    FROM cte
    WHERE Bill_Date > Min_Bill_Date AND
          DATEDIFF(Bill_Date - interval 1 year, Min_Bill_Date) <= 7
) t;

上述WHERE条款通过减去一年,将第一个票据日期与第一个票据日期进行比较,然后断言此后续购买是从第一次购买起的正负7天。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71567471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档