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

如何跟踪每日新增后累计唯一Leads的增长情况?

解决方案:每日累计唯一Leads增长统计

我来帮你搞定这个每日累计唯一Leads统计的需求~ 下面分数据库SQL和Python Pandas两种常用场景给出具体实现方案:

一、数据库SQL实现(以PostgreSQL为例)

假设你的Leads数据存在名为leads的表中,包含lead_id(Leads唯一标识)和call_date(呼叫日期)两个核心字段。

核心思路

  1. 先定位每个Leads首次出现的日期,筛选出当日新增的唯一Leads(也就是首次出现在当天的Leads)
  2. 生成完整的日期范围,避免漏掉那些没有新增Leads的日期
  3. 对每日新增数做累计求和,得到当日结束时的累计唯一Leads总数

具体SQL代码

WITH daily_unique_new AS (
    -- 统计每日新增的唯一Leads(仅包含首次出现的Leads)
    SELECT 
        call_date,
        COUNT(DISTINCT lead_id) AS new_unique_leads
    FROM (
        -- 标记每个Leads第一次出现的日期
        SELECT 
            lead_id,
            call_date,
            MIN(call_date) OVER (PARTITION BY lead_id) AS first_appear_date
        FROM leads
    ) t
    WHERE call_date = first_appear_date
    GROUP BY call_date
),
date_series AS (
    -- 生成从最早到最晚call_date的完整日期序列
    SELECT generate_series(
        (SELECT MIN(call_date) FROM leads),
        (SELECT MAX(call_date) FROM leads),
        INTERVAL '1 day'
    )::date AS call_date
)
-- 计算每日累计唯一Leads总数
SELECT 
    ds.call_date,
    SUM(dun.new_unique_leads) OVER (ORDER BY ds.call_date) AS leadsGrowth
FROM date_series ds
LEFT JOIN daily_unique_new dun ON ds.call_date = dun.call_date
ORDER BY ds.call_date;

二、Python Pandas实现

如果你的数据是本地文件(比如CSV)或者内存中的数据集,用Pandas处理会更灵活:

核心思路

  1. 统一日期格式,确保后续统计准确
  2. 找出每个Leads首次出现的日期,标记哪些是当日新增的唯一Leads
  3. 统计每日新增的唯一Leads数量
  4. 生成完整日期序列,填充无新增日期的0值后做累计求和

具体Python代码

import pandas as pd

# 1. 加载并预处理数据(假设数据来自CSV文件)
df = pd.read_csv('leads_data.csv')
df['call_date'] = pd.to_datetime(df['call_date']).dt.date  # 转换为标准日期格式

# 2. 获取每个Leads首次出现的日期
first_appear = df.groupby('lead_id')['call_date'].min().reset_index()
first_appear.columns = ['lead_id', 'first_date']

# 3. 标记当前记录是否为该Leads的首次出现
df = df.merge(first_appear, on='lead_id')
df['is_new'] = df['call_date'] == df['first_date']

# 4. 统计每日新增的唯一Leads数
daily_new = df[df['is_new']].groupby('call_date')['lead_id'].nunique().reset_index()
daily_new.columns = ['call_date', 'new_unique_leads']

# 5. 生成完整日期范围,避免遗漏无新增的日期
date_range = pd.date_range(start=df['call_date'].min(), end=df['call_date'].max()).date
date_df = pd.DataFrame({'call_date': date_range})

# 6. 计算累计唯一Leads总数并输出
result = date_df.merge(daily_new, on='call_date', how='left').fillna(0)
result['leadsGrowth'] = result['new_unique_leads'].cumsum().astype(int)

# 打印结果表格
print(result[['call_date', 'leadsGrowth']])

预期输出示例

最终会得到如下格式的结果表格:

callDateleadsGrowth
2020-04-012
2020-04-024
2020-04-034
......
2020-04-2715

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 14:32:56