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

如何用SQL/PostgreSQL统计多次完成注册流程的联系人及次数?

需求描述

有如下软件注册流程记录表(假设表名为registration_records):

ContactStep
Jerryregistration
Mikeregistration
Jerrycomplete
Karlregistration
Richardregistration
Richardcomplete
Jerryregistration
Jerrycomplete
Mikecomplete
Matthewregistration
Matthewcomplete
Richardregistration
Richardcomplete
Annaregistration
Annacomplete
Richardregistration
Karlcomplete
Richardcomplete
Annaregistration
Annacomplete

其中registration表示联系人进入注册流程,complete表示完成注册流程。需要统计完成注册流程超过一次的联系人,以及他们各自的完成次数,预期结果如下:

ContactCount
Jerry2
Anna2
Richard3

请问如何通过SQL/PostgreSQL实现该需求?

实现方案

可以通过分组统计+筛选条件来实现,具体SQL语句如下:

SELECT 
    contact,
    COUNT(*) AS count
FROM 
    registration_records
WHERE 
    step = 'complete'  -- 仅统计完成注册的记录
GROUP BY 
    contact
HAVING 
    COUNT(*) > 1  -- 筛选完成次数超过1次的联系人
ORDER BY 
    count DESC;  -- 可选:按完成次数降序排列,匹配示例结果顺序

语句说明

  1. WHERE step = 'complete':先过滤出所有标记为完成注册的记录,排除未完成的流程数据。
  2. GROUP BY contact:按联系人维度分组,统计每个联系人的完成记录总数。
  3. HAVING COUNT(*) > 1:过滤掉完成次数≤1的联系人,仅保留符合需求的结果。
  4. ORDER BY count DESC:可选排序逻辑,让结果按完成次数从多到少展示,和示例输出顺序一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:07:34