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

MS SQL Server 2005统计Subkey-Category组合频次求助

问题解决:按Subkey与Category组合统计出现次数

原SQL的问题

你的SQL存在两处冗余且影响逻辑的问题:

  • 多余的DISTINCT:GROUP BY Category, Subkey已经会自动按组合去重,额外添加DISTINCT完全没必要
  • 不必要的CASE判断:分组后每个组内的Category值是唯一的,你写的CASE逻辑等价于直接统计1,属于多此一举的写法

正确的SQL语句

针对MS SQL Server 2005,直接用COUNT(*)统计每个分组的行数即可,这是最简洁高效的写法:

SELECT
    Subkey,
    Category,
    COUNT(*) AS Frequency
FROM Table1
GROUP BY Subkey, Category
ORDER BY Subkey, Category; -- 可选,让结果与期望输出顺序一致

逻辑说明

  • GROUP BY Subkey, Category:将数据按Subkey和Category的唯一组合进行分组
  • COUNT(*):统计每个分组内的记录条数,也就是该组合的出现次数
  • 可选的ORDER BY:如果需要结果和你给出的期望输出顺序完全匹配,可以加上,不影响核心统计结果

执行这条SQL后,会得到你期望的输出:

SubkeyCategoryFrequency
AAapple3
AAbanana1
BBapple1
BBgrapes2
CCbanana2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:00:17