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

如何在MySQL中筛选18个月未下单的唯一客户(按邮箱去重)

筛选过去18个月未下单的客户(MySQL)

要实现按邮箱去重,找出过去18个月完全没有下单记录的客户,核心思路是先获取每个客户的最后下单日期,再判断该日期是否早于18个月前。以下是直接可用的SQL语句:

SELECT client_name, client_email
FROM orders
GROUP BY client_email, client_name
HAVING MAX(order_date) < DATE_SUB(CURDATE(), INTERVAL 18 MONTH);

逻辑说明

  1. 分组去重:通过GROUP BY client_email, client_name按客户邮箱(唯一标识)分组,确保每个客户只返回一条记录。
  2. 获取最后下单日期:用MAX(order_date)提取每个客户的最新订单时间。
  3. 时间筛选:DATE_SUB(CURDATE(), INTERVAL 18 MONTH)计算当前日期往前推18个月的时间点,只有最后下单日期早于这个时间点的客户,才会被筛选出来。

示例验证

针对你提供的订单表:

order_idclient_nameclient_emailorder_date
1Peter Panm1@mail.com2022-11-02
2John Doet1@mail.com2021-11-02
3Jane Doej1@mail.com2020-11-02
4Peter Panm1@mail.com2020-10-22
5Jane Doej1@mail.com2019-10-22
6John Doet1@mail.com2018-10-22

假设当前日期为2023-05-02,18个月前的时间点是2021-11-02:

  • Peter Pan的最后下单日期是2022-11-02(晚于2021-11-02),排除;
  • John Doe的最后下单日期是2021-11-02(等于时间点,不属于“未下单”范围),排除;
  • Jane Doe的最后下单日期是2020-11-02(早于2021-11-02),符合条件。

最终查询结果为:

Jane Doe j1@mail.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:01:15