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

SQL Server如何统计两列的所有组合出现次数(含重复组合)

SQL Server 统计两列组合出现次数并添加新列的实现方案

方案一:查询时动态生成计算列(无需修改表结构,适合临时查询场景)

直接使用窗口函数按两列分组统计次数,不需要改动原表结构:

SELECT 
    Product1,
    Product2,
    COUNT(*) OVER (PARTITION BY Product1, Product2) AS BoughtTogether
FROM OrderedTogether;

方案二:持久化添加新列到原表(统计结果永久保存)

如果需要把统计结果写入原表存储,执行以下两步:

  1. 先为表新增BoughtTogether字段,类型设置为INT:
ALTER TABLE OrderedTogether 
ADD BoughtTogether INT;
  1. 更新新列的统计值,有两种写法可选:
  • 写法1:关联分组统计子查询更新
UPDATE t1
SET t1.BoughtTogether = t2.CombinationCount
FROM OrderedTogether t1
INNER JOIN (
    SELECT Product1, Product2, COUNT(*) AS CombinationCount
    FROM OrderedTogether
    GROUP BY Product1, Product2
) t2 ON t1.Product1 = t2.Product1 AND t1.Product2 = t2.Product2;
  • 写法2:CTE+窗口函数更新(SQL Server 2008及以上版本支持,语法更简洁)
WITH CountCTE AS (
    SELECT 
        BoughtTogether,
        COUNT(*) OVER (PARTITION BY Product1, Product2) AS CombinationCount
    FROM OrderedTogether
)
UPDATE CountCTE SET BoughtTogether = CombinationCount;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:27:04