我一直以为我不能,但MSDN不这样说。
当不使用GROUP BY时,HAVING的行为类似于WHERE子句。
我检查过并收到错误:
消息8121:
列'''在HAVING子句中无效,因为 它不包含在聚合函数或GROUP BY中。
那么,它是什么?文档中的错误或鲜为人知的细节?
这可能是Sybase SQL Server中可用的功能之一。现在微软重写SQL Server更接近ANSI标准,但忘了修复文档。
情况如此?
答案 0 :(得分:6)
您可以在不使用having
的情况下使用group by
,但可以使用汇总功能。
select avg(price) from tbltemp having avg(price) >= 2
在您提供的MSDN链接中,给出的示例指示我们使用而不是使用。
你可能不会写类似"从商品HAVING中选择平均价格 价格> = 1000"但是你可以写一下"从商品中选择平均价格(价格)> => 1000"