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

如何查询指定日期后首次下单的客户列表?

获取首次下单时间符合指定条件的客户列表

订单表数据

OrderIDCustomerIDOrderedDate
110002024-02-27 20:00:00
220002024-02-28 23:00:00
330002024-02-28 23:01:00
410002024-02-29 23:01:00
540002024-02-29 23:02:00

需求说明

需要筛选出首次下单时间在指定日期(示例为2024-02-28 23:00:00)当天或之后的客户,示例中客户1000因首次下单早于指定日期需排除,最终结果为2000、3000、4000。

几种可行的SQL实现方法

方法1:GROUP BY聚合取最小下单日期

这是最简洁的实现方式,通过分组计算每个客户的最早下单时间,再筛选符合条件的记录:

SELECT CustomerID
FROM Orders
GROUP BY CustomerID
HAVING MIN(OrderedDate) >= '2024-02-28 23:00:00';

方法2:窗口函数标记首次订单

利用窗口函数为每个客户的订单按时间排序,筛选出首次下单的记录后再过滤日期:

WITH CustomerFirstOrders AS (
    SELECT 
        CustomerID,
        OrderedDate,
        ROW_NUMBER() OVER (PARTITION BY CustomerID ORDER BY OrderedDate) AS OrderRank
    FROM Orders
)
SELECT CustomerID
FROM CustomerFirstOrders
WHERE OrderRank = 1 AND OrderedDate >= '2024-02-28 23:00:00';

方法3:CROSS APPLY关联子查询

通过CROSS APPLY关联子查询获取每个客户的首次下单时间,再进行条件筛选:

SELECT DISTINCT o.CustomerID
FROM Orders o
CROSS APPLY (
    SELECT MIN(OrderedDate) AS FirstOrderDate
    FROM Orders
    WHERE CustomerID = o.CustomerID
) fo
WHERE fo.FirstOrderDate >= '2024-02-28 23:00:00';

期望查询结果

CustomerID
2000
3000
4000

内容的提问来源于stack exchange,提问作者FMFF

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:03:17