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

SQL需求:统计每日唯一ID数量及当日重复记录总数

问题分析

原SQL中的COUNT(*)统计的是当日总记录数,并非你需要的重复记录总数,这是导致结果不符合预期的核心原因。

解决方案

通过嵌套子查询先统计每个id在每日的出现次数,再基于该结果计算目标指标:

  1. 当日唯一id数量:直接用count(distinct id)统计当日不同id的个数。
  2. 当日重复记录总数:对出现次数大于1的id,累加其出现次数(完全匹配你给出的样本期望结果)。

完整SQL语句

SELECT
    day_date AS date,
    COUNT(DISTINCT id) AS "distinct id",
    SUM(CASE WHEN cnt > 1 THEN cnt ELSE 0 END) AS "no. of duplicates on that day"
FROM (
    -- 子查询:统计每个id在每日的出现次数
    SELECT
        TRUNC(date) AS day_date,
        id,
        COUNT(*) AS cnt
    FROM abc
    -- 如需仅统计当天,保留以下WHERE条件;统计所有日期则删除
    -- WHERE TRUNC(date) = TRUNC(sysdate)
    GROUP BY TRUNC(date), id
) t
GROUP BY day_date;

样本数据验证

针对你提供的样本数据,子查询会输出:

day_dateidcnt
1/1/202410112
1/1/202410121
1/1/202410141
1/2/202410142

外层分组后得到最终结果:

datedistinct idno. of duplicates on that day
1/1/202432
1/2/202412

完全匹配你的期望输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:05:42