sql - SSMS 有子句没有返回预期的结果
问题描述
我有一个没有给出预期结果的 HAVING 子句的查询。
查询如下:
SELECT COUNT(ClientProductID), SubCategoryName
FROM v_EnterpriseStructure #
GROUP BY ClientProductID, SubCategoryName Having (PackSizeNum) > 5
我得到的错误如下(HAVING 子句包含在 GROUP BY 子句中,所以我不明白为什么它会给出这个错误?)。任何人都可以解释一下吗?
消息 8121,级别 16,状态 1,第 121 行列 'v_EnterpriseStructure.PackSizeNum' 在 HAVING 子句中无效,因为它既不包含在聚合函数或 GROUP BY 子句中。
解决方案
您GROUP BY
不应该ClientProductID
在聚合中调用a COUNT()
:
SELECT COUNT(ClientProductID), SubCategoryName
FROM v_EnterpriseStructure #
GROUP BY SubCategoryName
HAVING COUNT(PackSizeNum) > 5;
推荐阅读
- swift - MapKit .PLIST DICTIONARY with INT 和 STRING-values = 来自 plist 的带有标题和副标题的多个注释(根据:MapKit Sample WWDC 2017 - 237)
- ruby-on-rails - 导航栏未显示在引导程序上
- java - 调用 GLES32 glGetDebugMessageLog 时出现 UnsupportedOperationException
- sql - 设置基于查询以替换循环以从给定日期填充所有记录的所有月末日期
- image - 将PNG图像转换为XImage格式
- rust - 别名具有生命周期的通用函数?
- sql - 加入两个查询以形成一个表 - 在 postgres
- typescript - 定义具有准确类型的对象数组
- python - Keras 权重平均
- python - 为什么下面的python代码会抛出内存错误?