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

如何统计SQL中各ID的重复条目数并添加至同行对应列

按ID统计重复条目并添加计数列的SQL解决方案

你需要的是按每个ID分组统计条目数,并将该计数对应到每一行的“Num of Duplicates”列,用窗口函数就能直接实现,不用复杂的子查询或分组后关联。

正确SQL查询语句

SELECT 
    ID,
    COUNT(*) OVER (PARTITION BY ID) AS "Num of Duplicates"
FROM your_table_name;

效果展示

原表数据:

ID
AB1
AB2
AB1
AB3
AB2
AB1

执行语句后输出:

ID Num of Duplicates
AB1 3
AB2 2
AB1 3
AB3 1
AB2 2
AB1 3

为什么之前的方法出错

你提到的第一种方案返回总条目数,是因为它没有按ID分组统计,而是计算了整个表的总行数——比如错误写法用了不带PARTITION BY ID的全局COUNT(*),导致每一行都显示全表的总条数。

如果需要更新原表添加该列(而非仅查询),可以用以下语句(以MySQL为例):

-- 先给表添加目标列
ALTER TABLE your_table_name ADD COLUMN `Num of Duplicates` INT;

-- 按ID分组统计后更新列值
UPDATE your_table_name t1
JOIN (
    SELECT ID, COUNT(*) AS cnt
    FROM your_table_name
    GROUP BY ID
) t2 ON t1.ID = t2.ID
SET t1.`Num of Duplicates` = t2.cnt;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:15:41