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

SQL Server查询GroupId关联的不同ProjID数量及查询修正

问题分析与修正方案

你的原查询问题出在GROUP BY同时包含了GroupId和ProjID,这会把每个(GroupId, ProjID)的组合作为独立分组统计,所以AAA会拆成(AAA,1)和(AAA,3)两个分组,每个分组计数1,自然不符合“统计每个GroupId关联的不同ProjID数量”的需求。

不需要使用HAVING子句,正确的做法是:

  1. 仅按GroupId分组,确保每个GroupId作为一个统计单元
  2. 使用COUNT(DISTINCT ProjID)来计算每个分组内不同ProjID的数量

修正后的SQL语句如下:

SELECT
    GroupId, COUNT(DISTINCT ProjID) AS Count
FROM
    Immerse
GROUP BY
    GroupId

结果验证

执行这条语句后,会得到你期望的结果:

GroupId  | Count
---------+-------
 AAA     |    2
 BBB     |    1
 CCC     |    1

解释:

  • COUNT(DISTINCT ProjID)会先对每个GroupId下的ProjID去重,再统计数量,所以CCC对应的ProjID都是4,去重后计数为1;AAA有1和3两个不同的ProjID,计数为2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:44:59