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

分组统计每日去重联系人计数总和与全局计数不符的原因

问题原因与解决方法

核心原因

同一个contact如果在多个日期都有符合条件的点击记录,会导致两种统计逻辑出现本质差异:

  • 全局统计COUNT(DISTINCT contacts):不管该contact出现多少天,只会被计数一次,最终结果是所有符合条件的唯一contact总数。
  • 按日期分组的COUNT(DISTINCT contacts):每个日期都会统计当天的独立contact数,同一个contact在不同日期出现时,会在每个日期的结果里各被计数一次。把这些每日计数相加,就会重复计算跨天出现的contact,所以总和必然与全局统计结果不一致。

直观验证

比如某contact在10月1日和10月2日均有符合条件的点击:

  • 全局统计会把这个contact算1次。
  • 按日期分组统计时,10月1日和10月2日的计数里各包含这个contact1次,求和后这个contact被算2次,直接导致总和大于全局结果。

对应解决方法

场景1:希望每日统计总和等于全局唯一contact数

需要调整逻辑,让每个contact只在其首次出现的日期被计数:

WITH unique_contacts AS (
    SELECT 
        contacts,
        MIN(CAST(clicks.time AS DATE)) AS first_date
    FROM clicks
    WHERE clicks.campaign_id = 1234
        AND clicks.type IN (1, 2, 3)
    GROUP BY contacts
)
SELECT 
    first_date AS `date`,
    COUNT(contacts) AS Totaly
FROM unique_contacts
GROUP BY first_date;

场景2:仅需统计每日独立访客数

当前的分组查询逻辑是正确的,只是不要将每日结果求和去和全局唯一数对比——两者统计维度完全不同,没有可比性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:31:03