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

PostgreSQL技术需求:筛选近2个月未到访的客户

获取近2个月未到访客户的PostgreSQL解决方案

嘿,我来帮你搞定这个需求!你要的是近2个月没有任何到访记录的客户详情,对吧?现在你的查询能拿到2个月前的到访数据,但还需要把这段时间内有过到访的客户彻底排除掉。下面给你两种实用的实现思路,都是基于你现有SQL的关联逻辑调整的:

方法1:使用NOT EXISTS子查询(推荐,性能通常更优)

这种方法直接检查客户在近2个月内有没有到访记录,没有的就保留下来:

SELECT usr.name, usr.mobile
FROM public.user usr
JOIN user_store_mapper usm ON usr.user_id = usm.user_id
WHERE NOT EXISTS (
    -- 子查询:验证该客户近2个月是否存在到访记录
    SELECT 1
    FROM invoice_header_view ihv
    WHERE ihv.partner_id = usm.partner_id
      AND ihv.create_date >= CURRENT_DATE - INTERVAL '2 months'
)
-- 如果user_store_mapper存在重复的客户-门店关联,添加DISTINCT去重
-- DISTINCT usr.name, usr.mobile

方法2:使用LEFT JOIN + IS NULL

这种方法通过左关联到访记录,筛选出没有匹配到记录的客户:

SELECT usr.name, usr.mobile
FROM public.user usr
JOIN user_store_mapper usm ON usr.user_id = usm.user_id
LEFT JOIN invoice_header_view ihv 
    ON ihv.partner_id = usm.partner_id
    -- 仅关联近2个月内的到访记录
    AND ihv.create_date >= CURRENT_DATE - INTERVAL '2 months'
-- 没有匹配到访记录的客户,就是我们需要的目标群体
WHERE ihv.partner_id IS NULL

几个关键注意点:

  • 确认ihv.create_date确实是记录客户到访时间的字段,如果不是,记得替换成对应的时间列
  • 如果需要精确到时分秒的时间范围,把CURRENT_DATE换成NOW()
  • 如果user_store_mapper里同一个客户关联了多个门店,建议添加DISTINCT避免输出重复的客户记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:38:53