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

使用GROUP BY函数按用户名与类型统计重复记录并填充Count列

数据表更新方案

原始数据表

USER_IDUSER_NAMETypeCount
1ABCFull
15BCDCON
19ABCCON
13ABCFULL
16XYZFULL

目标结果表

USER_IDUSER_NAMETypeCount
1ABCFull2
15BCDCON1
19ABCCON1
13ABCFULL2
16XYZFULL1

实现SQL语句

通用关联更新法(适配多数数据库)

通过子查询先统计每组记录数,再关联原表更新Count列:

UPDATE your_table t1
JOIN (
    SELECT USER_NAME, Type, COUNT(*) AS cnt
    FROM your_table
    GROUP BY USER_NAME, Type
) t2 ON t1.USER_NAME = t2.USER_NAME AND t1.Type = t2.Type
SET t1.Count = t2.cnt;

大小写不敏感场景适配

如果数据库对Type字段大小写敏感,需将Full和FULL视为同一分组,可修改为:

UPDATE your_table t1
JOIN (
    SELECT USER_NAME, LOWER(Type) AS lower_type, COUNT(*) AS cnt
    FROM your_table
    GROUP BY USER_NAME, LOWER(Type)
) t2 ON t1.USER_NAME = t2.USER_NAME AND LOWER(t1.Type) = t2.lower_type
SET t1.Count = t2.cnt;

窗口函数法(适用于MySQL 8.0+、PostgreSQL、SQL Server等)

利用窗口函数直接计算每行对应的分组计数:

WITH group_counts AS (
    SELECT USER_ID, COUNT(*) OVER (PARTITION BY USER_NAME, Type) AS cnt
    FROM your_table
)
UPDATE your_table t
SET t.Count = gc.cnt
FROM group_counts gc
WHERE t.USER_ID = gc.USER_ID;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:53:09