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

如何编写T-SQL查询将B列更新为对应名称在A列的出现次数

实现方案

假设你的表名为YourTable,存储名称的列为A,待更新的计数列为B,可使用以下两种T-SQL语句实现需求:

方案1:CTE + 开窗函数(更适合大规模数据表,执行效率更高)

WITH NameCountCTE AS (
    SELECT
        B,
        COUNT(*) OVER(PARTITION BY A) AS TotalOccur
    FROM YourTable
)
UPDATE NameCountCTE
SET B = TotalOccur

方案2:关联子查询写法

UPDATE t1
SET t1.B = (
    SELECT COUNT(*) 
    FROM YourTable t2 
    WHERE t2.A = t1.A
)
FROM YourTable t1

注意事项

  • 请将语句中的YourTable替换为你实际的表名,若列名不符也同步替换即可。
  • 大表执行更新前建议先给A列创建非聚集索引,可大幅提升计算速度。
  • 正式更新前可先执行以下语句验证结果是否符合预期,避免误操作:
SELECT 
    A,
    B AS OriginalB,
    COUNT(*) OVER(PARTITION BY A) AS ExpectedB
FROM YourTable

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:06:00