You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中筛选并展示首周存在的客户数据

筛选首周客户的所有交易记录,排除后续新增客户

需求说明

仅保留在第36周(首周)出现过的客户的所有交易记录,排除后续周首次出现的新客户(如C005、C006)。

解决方案1:内连接子查询

通过子查询提取所有第36周的客户ID,再与原表关联筛选出目标记录:

SELECT t.*
FROM trydata t
INNER JOIN (
    -- 提取第36周出现过的唯一客户ID
    SELECT DISTINCT CustomerID
    FROM trydata
    WHERE Weeks = 36
) AS first_week_customers 
    ON t.CustomerID = first_week_customers.CustomerID;

解决方案2:使用EXISTS子句

通过EXISTS检查每条记录对应的客户是否在第36周有交易记录:

SELECT *
FROM trydata t
WHERE EXISTS (
    SELECT 1
    FROM trydata
    WHERE CustomerID = t.CustomerID
      AND Weeks = 36
);

逻辑说明

两种方法核心逻辑一致:

  1. 先定位所有在第36周有交易记录的客户
  2. 只保留这些客户的所有交易数据,自动排除从未在36周出现的新客户(如C005、C006)

期望结果

执行上述查询后,将得到以下结果(已排除C005、C006的所有记录):

CustomerIDCustTransWeeksCustSales
C0012022-09-033634
C0022022-09-023623
C0032022-09-0336132
C0042022-09-023695
C0022022-09-083768
C0012022-09-053754
C0022022-09-113834
C0022022-09-233998
C0042022-09-193934
C0012022-09-183930
C0032022-09-264034
C0012022-09-254034

内容的提问来源于stack exchange,提问作者tasya fauzia fitriasari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:05:19