我一直认为我做不到,但MSDN却不这么说。
当GROUP BY不被使用时,具有类似WHERE子句的行为。
我检查并得到了错误:
Msg 8121: 列“.”在HAVING子句中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY中。
那么这是什么?文档中的错误,还是一个鲜为人知的细节?
这可能是在Sybase SQL Server中起作用的事情之一。现在,Microsoft更接近ANSI标准重写了SQL Server,但忘了修复文档。
情况就是这样吗?
发布于 2015-02-27 09:36:30
您可以在不使用having的情况下使用聚合函数,而无需使用group by。
select avg(price) from tbltemp having avg(price) >= 2在您提供的MSDN链接中,给出的示例指示我们使用where而不是where。
您不能写“从价格为>= 1000的货物中选择avg(价格)”,但您可以写“从价格>= >1000的货物中选择avg(价格)”。
https://stackoverflow.com/questions/28761521
复制相似问题